我有兩個字串的串列:
x = ['feature1','feature2']
我需要y從串列中創建以下串列x:
y = [feature1, feature2]
我怎樣才能在 Python 中做到這一點?
uj5u.com熱心網友回復:
可以直接將變數放入globals:
x = ['feature1','feature2']
for varname in x:
globals()[varname] = 123
print(feature1)
# 123
這將允許y按照問題中的說明進行創建。
然而,它是可能的事實并不表明它應該以這種方式完成。在不了解您正在解決的問題的具體細節的情況下,很難提供進一步的建議,但可能有更好的方法來實作您所追求的目標。
更新:@mozway 在評論中對上述內容提出了一些擔憂,其中之一是y如果修改了 feature2,則不會修改。例如:
x = ['feature1','feature2']
for varname in x:
globals()[varname] = 123
y = [feature1, feature2]
print(y)
# [123, 123]
feature2 = 456
print(y)
# [123, 123]
記住這似乎是一件有用的事情,盡管即使使用常規語法,我也會得到類似的行為:
feature1 = 123
feature2 = 123
y = [feature1, feature2]
print(y)
# [123, 123]
feature2 = 456
print(y)
# [123, 123]
uj5u.com熱心網友回復:
僅出于句法目的,這里有exec. 請記住,它接受額外的引數來限制變數的范圍(默認為全域)。
x = ['feature1','feature2']
for s in x:
exec(f'{s} = "{s}"') # execute the string containing a python command
y = [feature1, feature2]
print(y)
#['feature1', 'feature2']
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/488751.html
下一篇:比較兩個陣列,如果匹配傳遞給物件
