繁体   English   中英

组合两个不相等的列表并创建字典

[英]python - combinig two unequal lists and create a dictionary

你能让我知道我该怎么做吗

a = ['x']

b = ['y', 'z']

我想结合以上两个列表并创建如下的字典

c = {'x': ['y', 'z']}

我尝试下面的代码,但没有用

from itertools import cycle

c = dict(zip(a, cycle(b)))

输出:

c = {'x': 'y'}

a只包含一个键? 如果是这样,请直接创建它:

a = ['x']
b = ['y', 'z']

d = {a[0]: b}

print(d)

您确实需要提供更多详细信息...
如果您要逐步浏览b对,则可以:

>>> a = ['x']
>>> b = ['y', 'z']
>>> x = iter(b)
>>> dict(zip(a, zip(x, x)))
{'x': ('y', 'z')}

但是len(a)必须等于len(b)//2 ,否则您可以循环通过b

>>> import itertools as it
>>> a = ['x', 'y', 'z']
>>> b = ['y', 'z']
>>> x = it.cycle(b)
>>> dict(zip(a, zip(x, x)))
{'x': ('y', 'z'), 'y': ('y', 'z'), 'z': ('y', 'z')}

或与多对b

>>> a = ['x', 'y', 'z']
>>> b = ['a', 'b', 'c', 'd']
>>> x = it.cycle(b)
>>> dict(zip(a, zip(x, x)))
{'x': ('a', 'b'), 'y': ('c', 'd'), 'z': ('a', 'b')}

这似乎很好用:

a = ['x']
b = ['y','z']
c = dict(a=b)
print(c)

您是否有理由为Python内置的功能导入周期?

这是你想要的吗??

您不必使用任何该导入库。

  1. 字典是一种数据类型,您可以使用c = {}来创建它,就像其他类型一样(例如:a = []来创建列表)

  2. 我假设您在列表a中有多个项目,并且想与b .... b(多个列表)组合使用。 所以我在那里有一个for循环。

  3. 请提及您的python版本(Python 2.7和Python 3.5的语法略有不同)

更新1:

示例代码:

a = ['x']
b = ['y', 'z']
c = {}
for i in a:
    c[i] = b

print c

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM