我需要一个简单的东西,但我做不到:
list = 'SBEDFG'
我需要输出:
[(S,B),(B,E),(E,D),(D,F),(F,G)]
这是我尝试过的:
[(list[ind],list[ind+1]) for ind,i in list]
但它给了我这个错误:
ValueError: need more than 1 value to unpack
你能帮帮我吗?谢谢!
最佳答案
您可以简单地使用 zip()
像这样的功能:
>>>l = 'SBEDFG'
>>>zip(l,l[1:])
[('S', 'B'), ('B', 'E'), ('E', 'D'), ('D', 'F'), ('F', 'G')]
使用 Python 3.X,您需要将 zip
结果转换为 list
:
#Python 3.X
>>>l = 'SBEDFG'
>>>list(zip(l,l[1:]))
[('S', 'B'), ('B', 'E'), ('E', 'D'), ('D', 'F'), ('F', 'G')]
有了列表理解,我会用 range()
函数来做:
>>>[(l[i],l[i+1]) for i in range(len(l)-1)]
[('S', 'B'), ('B', 'E'), ('E', 'D'), ('D', 'F'), ('F', 'G')]
希望这对您有所帮助!
关于python - 从列表中提取值并生成元组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22066530/