Python逗号分隔列表
Posted
技术标签:
【中文标题】Python逗号分隔列表【英文标题】:Python Comma Separate List 【发布时间】:2017-07-18 12:27:51 【问题描述】:我需要帮助,我正在尝试编写一个逗号分隔的列表,但结果以不同的方式打印。
这是我的示例代码:
a = ('name1', 'name2', 'name3')
b = ('url1', 'url2', 'url3')
results = (a, b)
print(results)
这将显示:
(('name1', 'name2', 'name3'), ('url1', 'url2', 'url3'))
但是,我希望它显示:
name1, url1, name2, url2, name3, url3
任何帮助表示赞赏
谢谢
【问题讨论】:
print(', '.join(', '.format(*z) for z in zip(a, b)))
但请看一下教程之类的。这些是tuple
s btw,而不是list
s。
你可以使用我的新 favroute 语法(但不要):a = iter(a); print(list((yield next(a)) or x for x in b))
@Chris_Rands ????这是怎么回事?
@Ev.Kounis ***.com/questions/32139885/…
可能的欺骗:***.com/questions/7946798/…
【参考方案1】:
您可以先使用zip(..)
为每个名称和网址生成 2 元组,然后我们可以使用生成器或列表推导将它们连接在一起,例如:
print(', '.join(y for x in zip(a,b) for y in x))
这会生成:
>>> print(', '.join(y for x in zip(a,b) for y in x))
name1, url1, name2, url2, name3, url3
或者更具声明性的风格:
from itertools import chain
print(', '.join(chain(*zip(a,b))))
编辑:
如果你想在单独的行上打印 url,你可以使用:
for n,u in zip(a,b):
print(n,u,sep=',')
或者如果你想先产生一个字符串:
print('\n'.join(', '.format(*t) for t in zip(a,b))
【讨论】:
快速提问,如何将输出更改为显示;名称1,网址名称2,网址名称3,网址 所以url
每次都一样?
不,它将是列表中的下一个 url。我的代码是基本示例。我实际上是从网络上提取数据,但想先了解基础知识。我实际上会从 find_elements_by_xpath 收集 10 个 url,10 个名称
@AuthorityDomains: 给定b
包含了你收集到的所有url,那么就没有问题了。无论是list
,还是tuple
,都不相关。
所以它会在第一行列出name1、url1,然后在下一行列出name2、url2,依此类推【参考方案2】:
这应该可以解决问题。
a = ('name1', 'name2', 'name3')
b = ('url1', 'url2', 'url3')
from itertools import chain
ab = tuple(chain.from_iterable(zip(a, b)))
lst = ', '.join(ab)
【讨论】:
这也有效,但仍显示括号和引号,但谢谢【参考方案3】:有很多方法可以做到这一点,这是我首先想到的。
import operator
results = reduce(operator.add, zip(a, b))
这是另一种更“分解”的可能丑陋的做法,但更容易看到发生了什么。
results = []
while True:
try:
results.append(a.pop(0))
results.append(b.pop(0))
except IndexError:
break
【讨论】:
【参考方案4】:Willem's answer 是解决您原始问题的方法。
如果您想做的不仅仅是显示元素,您可能希望为您的数据使用dict
:
>>> dict(zip(a,b))
'name2': 'url2', 'name3': 'url3', 'name1': 'url1'
如果顺序很重要,您可以使用OrderedDict
:
>>> from collections import OrderedDict
>>> OrderedDict(zip(a,b))
OrderedDict([('name1', 'url1'), ('name2', 'url2'), ('name3', 'url3')])
【讨论】:
以上是关于Python逗号分隔列表的主要内容,如果未能解决你的问题,请参考以下文章