python - 从列表中提取值并生成元组

标签 python list-comprehension

我需要一个简单的东西,但我做不到:

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/

相关文章:

python - 操作系统: Maya Python Qt conflict with system libraries

python - 尝试安装 MySQL-python-1.2.3 但出现错误

python - if else 在列表理解中

python - 使用列表理解生成带计数器的二维数组

julia - 如何获得Julia中索引列表的补充?

python - 是什么让列表不可散列?

python - WinError6 句柄无效 Python 3+ 多处理

python - 正确的正则表达式是什么?

python - yield 在推导式或生成器表达式中的应用是什么?

string - 如何在haskell中组合两个字符串中的字母