Об игре
Новости
Войти
Регистрация
Рейтинг
Форум
7:10
2761
 online
Требуется авторизация
Вы не авторизованы
   Форумы-->Форум для внеигровых тем-->
1|2

АвторКак в Питоне посчитать, что в списке, все данные одного типа?
Вот вам задачка на ночь
Нужно вернуть True, если все *args одного типа, иначе False
Тот же вопрос гпт задай, нубас.
для Qnemes:
жепете правильно отвечает
1. Берем первый аргумент
2. Берем тип первого аргумента
3. Не очень знаком с пайтоном, думаю, можно через for прогнать сравнение первого типа с оставшимися

Зато на Swift очень простенько! Создаешь функцию с дженериком, прогоняем циклом for type(of: ...) - выводишь true или false
для Айсрис:
а напиши функцю
жепете правильно отвечает на такой простой вопрос, конечно
для The Hero:
Братан, с виду простая задачка, но есть трабл, попробуй
ок я сам скопировал вопрос в чат гпт:
def all_args_same_type(*args):
if not args:
return True # Пустой список аргументов можно считать состоящим из одного типа

first_type = type(args[0])
return all(isinstance(arg, first_type) for arg in args)

# Примеры использования
print(all_args_same_type(1, 2, 3, 4)) # True, все аргументы типа int
print(all_args_same_type(1, 2, '3', 4)) # False, аргументы разных типов
print(all_args_same_type('a', 'b', 'c')) # True, все аргументы типа str
print(all_args_same_type()) # True, пустой список аргументов
это жпт, а вспомни про all()
func checkYopselsTypes(_ yopselArgs: Any...) -> Bool {
guard let firstYopselArg = yopselArgs.first else {
return true
}
let firstYopselType = type(of: firstYopselArg)
for yopselArg in yopselArgs {
if type(of: yopselArg) != firstYopselType {
return false
}
}
return true
}

1. Создаем функцию checkYopselsTypes, она принимает Any... - это любой тип, которого может быть неопределенное количество
2. guard let firstYopselArg = yopselArgs.first - берем первое значение за указатель, также это проверка на наличие значения вообще
3. let firstYopselType = type(of: first) - берем первый тип первого значения, чтобы сравнивать с ним оставшиеся элементы
4. Пробегаемся циклом и сравниваем типы
5. всё
для Йопсель:
Написал на Swift, думаю, примерно такая же логика и в языке Python
Ну пацаны, молодцы, что скидываете GPT
В любом случае - гавно.
Можете свой код дать?
Вот без фигни, напишите сами
Я вам свой код скину
для Йопсель:
Пайтон В любом случае - гавно.
для Qnemes:
не согласен
Обидно, я сам старался, даже словами в начале объяснил решение

Если ChatGPT даёт точно такое же решение, очевидно, что задача тривиальна, следовательно, и решение тривиально

Любые другие изменения своего решения считаю избыточными, потому что задача выполняется корректно при разных вводах, а намеренное усложнение кода - зло, которым, кстати, ChatGPT и грешит
Лол, вот решение ChatGPT

func allSameType<T>(_ args: T...) -> Bool {
for arg in args {
if type(of: arg) != type(of: args[0]) {
return false
}
}
return true
}

// Примеры использования:
print(allSameType(1, 2, 3)) // true
print(allSameType(1, "2", 3)) // false
print(allSameType("a", "b", "c")) // true
print(allSameType()) // true (пустой список)

Он просто не запустится
это жпт, а вспомни про all()
а что вспоминать?
def get_type(lst:list)
res = all(type(x) == type(lst[0]) for x in lst)
return res
1|2
К списку тем
2007-2024, онлайн игры HeroesWM