我试图分裂出一个列表,如标题:索引/拆分[“ABC:2”,“CDE:3”]
['ABC:2', 'CDE:1']
最后,我想之前分配位并在:
之后对两个不同的变量进行迭代。
我正在使用Python 2.7。
我试图分裂出一个列表,如标题:索引/拆分[“ABC:2”,“CDE:3”]
['ABC:2', 'CDE:1']
最后,我想之前分配位并在:
之后对两个不同的变量进行迭代。
我正在使用Python 2.7。
>>> L = ['ABC:2', 'CDE:1']
>>> for i, j in (x.split(":") for x in L):
... print i, j
...
ABC 2
CDE 1
这正是我所需要的,非常感谢。只在uni上做了3个月的python,之前没有遇到过这种格式。是列表理解?不管它是什么病都读了它! – chris
@ user1710566,它被称为生成器表达式。语法的工作原理类似于列表理解,但它每次只产生一个结果,所以使用的内存少于创建临时列表 –
使用高阶函数(我感觉更舒服):
>>> xs = ['ABC:2', 'CDE:1']
>>> split_xs = map(lambda s : s.split(":"), xs)
>>> for x, y in split_xs:
... print(x, y)
...
ABC 2
CDE 1
那么肯定应该使用'map(operator.methodcaller('split',':') ,xs)'? –
@JonClements,这是更长和更复杂。后者困扰我更多。 – missingfaktor
欢迎堆栈溢出!我们鼓励你[研究你的问题](http://stackoverflow.com/questions/how-to-ask)。如果你已经[尝试了某些东西](http://whathaveyoutried.com/),请将其添加到问题中 - 如果没有,请先研究并尝试您的问题,然后再回来。 – 2012-10-08 11:10:06
你对格式有任何控制权吗?如果格式稍有不同,则可以使用JSON解析器。 – SDC