所以,如果我有一個這樣的名單:如何更改列表中的項目分組?
x = [0,1,2,3,4,5,6,7,8,9]
如何轉換這個名單弄成這個樣子:
x = [01,23,45,67,89]
我怎麼能這樣做?
我知道內置的zip
功能, 但我不想tuple
,我想2號分爲1
所以,如果我有一個這樣的名單:如何更改列表中的項目分組?
x = [0,1,2,3,4,5,6,7,8,9]
如何轉換這個名單弄成這個樣子:
x = [01,23,45,67,89]
我怎麼能這樣做?
我知道內置的zip
功能, 但我不想tuple
,我想2號分爲1
你可以試試這個:
x = [0,1,2,3,4,5,6,7,8,9]
x = map(str, x)
new_list = map(int, [x[i]+x[i+1] for i in range(0, len(x)-1, 2)])
非常感謝!我不知道那個伎倆。 – Ajax1234
感謝您的快速回復!我會嘗試! –
請注意,在python 3中'map'返回的是一個生成器對象而不是一個列表,所以你必須對'in ='x = list(map(str,x))'或'x = [str(i) X]'。 –
使用拉鍊,列表推導,假設數據類型是從整列表到字符串列表:
In [1]: x = [0,1,2,3,4,5,6,7,8,9]
In [2]: pairs = zip(x[::2], x[1::2])
In [3]: pairs
Out[3]: [(0, 1), (2, 3), (4, 5), (6, 7), (8, 9)]
In [4]: [str(fst) + str(snd) for fst, snd in pairs]
Out[4]: ['01', '23', '45', '67', '89']
這更容易理解nd是一行代碼:
# l = list of string of items in list u with index(i) and index(i+1) and i increments by 2
l = [ str(u[i]) + str(u[i+1]) for i in range(0, len(u), 2)]
考慮到guido想擺脫地圖和功能被映射到列表沒什麼大這可能是更好的答案,並可能更快 – citizen2077
已修改'x'列表包含'str'對象或'int's? –
01在Python中不是一個有效的整數表示...你的意思是組合整數的函數應該返回字符串嗎?或者你的輸入實際上是以字符串開始的? – THK