Python:一次分配多个变量
如果需要分配超过(比如)100个左右的值,我如何分配上述值 在这种情况下,您可以使用赋值,python方法是使用字典。如果Python:一次分配多个变量,python,variables,Python,Variables,如果需要分配超过(比如)100个左右的值,我如何分配上述值 在这种情况下,您可以使用赋值,python方法是使用字典。如果doc是字典,您可以循环其值,并使用enumerate创建字典: a,b,c,d,e,f,g,h,i,j = ''.join(doc[a1]),''.join(doc[a2]),''.join(doc[a3]),''.join(doc[a4]),''.join(doc[a5]),''.join(doc[a6]),''.join(doc[a7]),''.join(doc[a8]
doc
是字典,您可以循环其值,并使用enumerate
创建字典:
a,b,c,d,e,f,g,h,i,j = ''.join(doc[a1]),''.join(doc[a2]),''.join(doc[a3]),''.join(doc[a4]),''.join(doc[a5]),''.join(doc[a6]),''.join(doc[a7]),''.join(doc[a8]),''.join(doc[a9]),''.join(doc[a10])
如果doc
不是字典,而是另一种类型的iterable对象,那么您只需在其自身上循环即可
你也可以在听写理解中完成:
d={}
for i,j in enumerate(doc.values()):
d['a{}'.format(i)]=''.join(j)
然后,您可以通过索引访问变量:
d={'a{}'.format(i):''.join(j) for i,j in enumerate(doc.values())}
你的代码有点混乱。更明确的做法是:
print d['a1'] # or d['an']
您使用的语法通常用于以下实例:
a = ''.join(doc[a1])
b = ''.join(doc[a2])
c = ''.join(doc[a3])
d = ''.join(doc[a4])
e = ''.join(doc[a5])
f = ''.join(doc[a6])
g = ''.join(doc[a7])
h = ''.join(doc[a8])
i = ''.join(doc[a9])
j = ''.join(doc[a10])
您想要的内容听起来像是可以由数组处理的,但您必须将a1、a2、…、a10转换为数组
假设a1、a2、…、a10位于名为a
的数组中,您可以通过执行以下操作将所需内容放入名为b的数组中:
str_ = "a,b"
a, b = str_.split(",")
# a = "a", b = "b"
这是一种很难理解的方法。另外,您正在尝试手动执行一些您应该尝试以编程方式执行的操作。循环和列表是您的朋友。你不想跟踪那么多的变量。相反,跟踪列表中的项目更方便。你最好有这样的服务:
b = [''.join(doc(a_part)) for a_part in a]
可以更简洁地写为
new_list = []
for key in doc:
new_list.append(''.join(doc[key]))
或者,如果doc是一个列表:
new_list = [''.join(doc[key]) for key in doc]
请不要做任何你想做的事。你能展示你试图解决的实际问题吗?我向你保证,一个列表可能是你想要的,而不是100个独立命名的变量。如果必须读取,那将非常糟糕。@CoryKramer假设我有一个包含100行字符串的csv文件。我想做的是随机选择其中的50个并将其分配给50个变量。@KevinOelen我再次问,为什么50个变量而不是一个包含50个元素的列表?我想你忘记了enumerate(doc.values())中I,j后面的冒号。
new_list = [''.join(item) for item in doc]