由此
a = ['foo','bar','cat','dog']
創建另一個變數b,如下所示:
b = [['foo','bar'],['bar','cat'],['cat','dog']] # with this order
我試過這個:
b = [[i] * 2 for i in a]
但給出了這個:
[['foo', 'foo'], ['bar', 'bar'], ['cat', 'cat'], ['dog', 'dog']]
請不要使用外部庫。
uj5u.com熱心網友回復:
您可以像嘗試那樣使用串列理解,只需稍作修改即可考慮串列中的不同位置:
b = [[a[i-1], a[i]] for i in range(1, len(a))]
輸出:
[['foo', 'bar'], ['bar', 'cat'], ['cat', 'dog']]
由于您想將“觸摸”專案配對a[i-1]并a[i]完成此操作。然后只需遍歷每個iin len(a)。但是,我們使用range(1,len(a))而不是range(len(a)),因為我們不想將 的第一個值a與它之前的某個值配對,因為它是第一個值。
一個可以說是更清潔的解決方案是使用zip,但這取決于偏好:
b = [list(i) for i in zip(a, a[1:])]
在這種情況下,我們使用a[1:]為了偏移該串列,以便對是正確的。
uj5u.com熱心網友回復:
嘗試這個:
a = ['foo','bar','cat','dog']
b = [x for x in zip(a, a[1:])]
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/427611.html
上一篇:如何獲取串列中反向重復項的索引
