Я новичок в Python.
Я изучаю понимание списка, но мой код плох, потому что понимание списка неверно или отсутствует:
Я пробовал много вещей, но результатыгенераторы или ошибки.Не могли бы вы дать мне совет ...?
Спасибо.Acer
import itertools as it
aT=list(it.permutations([4,3,3,0],3))
uT=list(set(aT))
# convert uniqueTimes list of tuples to list of lists
uT=[list(el) for el in uT]
uTt=[el[0]+el[1]+el[2] for el in uT] #It is wrong, I want universal list comprehension :-( when I change members of permutation, e.g.it.permutations([5,4,3,2,1],4))
uTs=[] #It is wrong too, I want universal list comprehension :-(
a=""
for m in range(len(uT)):
for n in range(len(uT[m])):
a+=str(uT[m][n])
uTs.append(a)
a=""
uTcombine=list(it.zip_longest(uTs,uTt)) #result as I expected, but the algorithm is "non comperhesion"
print(uT)
print(uTcombine)
из этого (uT - список списков, каждый внутренний список которого уникален)
[[0, 3, 3], [3, 4, 3], [0, 3, 4], [3, 0, 3], [3, 4, 0], [3, 0, 4], [4, 0, 3], [4, 3, 3], [3,3, 4], [3, 3, 0], [0, 4, 3], [4, 3, 0]]
Мне нужно это (uTcombine - список кортежей, где первым в кортеже является[0,3,3] => '033', а секунда - сумма пунктов списка [0,3,3] => 6
[('033', 6), ('343', 10), («034», 7), («303», 6), («340», 7), («304», 7), («403», 7), («433», 10),(«334», 10), («330», 6), («043», 7), («430», 7)]