【发布时间】:2018-12-08 00:19:20
【问题描述】:
我正在尝试生成大量变量,但其中一些变量可能包含子部分。下面的代码是我目前所在的位置。
import string
Num_Phases = 4 # Number of Phases
Subphases = [2, 3] # Which Phases have Subphases
Num_Subphases = [2, 2] # How Many Phases the respective Subphase have
Phases = []
for i in range(1, Num_Phases + 1):
if i < 10:
# Start with regular name Convention
PhaseName = "Phase-0%s" %i
# Check to see if phase has subphase
for n in range(1, len(Num_Subphases) + 1):
if Subphases[n - 1] == i:
# If there is a Subphase, Check how many Subphases
for m in range(1, Num_Subphases[n - 1] + 1):
# for each subphase define a phase name
PhaseName = ("Phase-0%s" %i) + ('').join(string.ascii_lowercase[m-1])
# Combine Phases into list
Phases.append(PhaseName)
Phases.append(PhaseName)
我目前得到的结果是:
['Phase-01', 'Phase-02b', 'Phase-02b', 'Phase-03b', 'Phase-03b', 'Phase-04']
但我希望它是:
['Phase-01', 'Phase-02a', 'Phase-02b', 'Phase-03a', 'Phase-03b', 'Phase-04']
这将用于一个非常大的数据集,但我以此为例。
【问题讨论】:
-
这些是列表中的字符串,这与变量名有什么关系?
-
我的代码的另一部分需要列表格式的它们。
-
为什么使用
range(1, len(Num_Subphases) + 1)而不是range(0, len(Num_Subphases))?这样你就不必一直写n-1。 -
我没有任何理由,我只是没想到这样做。谢谢!
标签: python string list loops ascii