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])
如果需要分配多于(假设)100个左右的值,我如何分配上述值?Python:一次分配多个变量
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])
如果需要分配多于(假设)100个左右的值,我如何分配上述值?Python:一次分配多个变量
在可以使用分配这种情况下,Python的方式是使用dictionary.if doc
是一本字典,你可以遍历它的价值和使用enumerate
创建词典:
d={}
for i,j in enumerate(doc.values()):
d['a{}'.format(i)]=''.join(j)
如果doc
不一个字典,是另一种类型的可迭代对象,你可以循环自己。
你也可以做到这一点的字典修真之内:
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])
你使用通常在类似情况下使用的语法:
str_ = "a,b"
a, b = str_.split(",")
# a = "a", b = "b"
你想要什么听起来像它可以通过一个数组来处理,但你必须将a1,a2,...,a10变成一个数组。
假设A1,A2,...,A10是在名为a
一个数组,你可以得到你想要进入称为B数组什么做:
b = [''.join(doc(a_part)) for a_part in a]
那就是做一个非常不可读的方式。此外,您正在尝试手动执行某些操作,您应该尝试以编程方式进行操作。循环和列表是你的朋友。你不想跟踪那么多变量。相反,跟踪列表中的项目更方便。你会的东西得到更好的服务是这样的:
new_list = []
for key in doc:
new_list.append(''.join(doc[key]))
可以写得更简洁的
new_list = [''.join(doc[key]) for key in doc]
,或者如果文档是一个列表:
new_list = [''.join(item) for item in doc]
请不要做无论你想要做什么。你可以显示你正试图解决的*实际*问题吗?我向你保证,列表可能是你想要的而不是100个独立命名的变量。 – CoryKramer
不是那样的。阅读这将是非常可怕的。 – IanAuld
@CoryKramer假设我有csv文件,里面有100个字符串行。我想要做的是随机选择其中的50个,并将其分配给50个变量。 – KevinOelen