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