LINUX.ORG.RU

PYTHON вопрос по перестановке

 


0

1

Привет.

Вопрос для кого-то наверно простой

есть 2 переменные

print d, t
[14, 20, 2, 8] [-10, -12, -13, -14]

данные надо перемешать {0} {4} {1} {5} и т.д. чтобы получилось 14 -10 20 -12 и т.д.

пишу такое

for line4 in d:
for line5 in t:
print {line4}+' '+{line5}

ответ

TypeError: unsupported operand type(s) for +: 'set' and 'str'

в примерах у кого-то вроде работало, но у меня не тот тип данных или что, никак пока не понятно.

Где ты этот бред взял? {} создает set, нафига тебе это нужно? И вложенными циклами ты делаешь полное произведение. Судя по всему тебе нужен zip, и числа в строки переводить str, а лучше использовать fmt.

anonymous
()
Ответ на: комментарий от Psych218

Вы абсолютно правы, ну конечно же, в питоне есть встроенные клевые функции.

zip(d, t)
[(14, -10), (20, -12), (2, -13), (8, -14)]

дальше чистим форматом и все.

Спасибо!

den3332011
() автор топика
Ответ на: комментарий от den3332011

Тебе бы лучше разобраться, как оно на самом деле устроено, чем использовать «встроенные клевые функции». А то судя по топику ты вообще не понимаешь, что происходит.

theNamelessOne ★★★★★
()

нихрена не понял, но что-то вроде

d = [1,2,3,4]
>>> t = [5,6,7,8]
>>> a = d+t
>>> random.shuffle(a)
>>> print a
[8, 4, 1, 7, 5, 6, 2, 3]
buratino ★★★★★
()
Ответ на: комментарий от buratino

ему нужен был именно зип, он не то что не понимает пистона, у него с русским проблема 9формулировка задачи и есть правильный ответ0

anonymous
()
Ответ на: комментарий от den3332011

Только одному мне кажется что решение, которому так радуется автор темы, и вопрос - разные вещи?.. Это как таблетка от геморроя при кашле.

I-Love-Microsoft ★★★★★
()
Последнее исправление: I-Love-Microsoft (всего исправлений: 1)
Ответ на: комментарий от I-Love-Microsoft

Спасибо за вашу помощь и критику. Любые ответы и советы всегда очень помогают в решении задачи. random.shuffle хорошее решение, но не совсем здесь применимо. zip(a,b) удобная функция, но вероятно лучше реализовать через регулярные выражения или .format().

den3332011
() автор топика
Ответ на: комментарий от deterok

Точно не знаю, про какую ты говоришь тему, и не уверен, что хочу знать.

theNamelessOne ★★★★★
()
Ответ на: комментарий от den3332011

Да та, что с «циклами». Я после работы хотел уж было что-то этакое сказать, потом решил не впадать в крайности и поинтересоваться в необходимости. И да, не стоит писать скрипты в модулях на живую". Используй что-то типа:

def main():
    <Код скрипта здесь>

if __name__ == "__main__":
    main()

deterok ★★★★★
()
Ответ на: комментарий от deterok

Спасибо за подсказки. Думаю пару десятков скриптов и «пациенту» станет значительно лучше)

den3332011
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.