如何迭代创建要在函数中使用的变量

2024-09-25 14:15:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我创建了多个变量,stringa-stringc。 我试图找到一种迭代创建这些变量名的方法,并将它们用作函数的输入,而不必单独键入它们

import string

stringa = ['item1', 'item2', item3']
stringb = ['sitem1', 'sitem2']
stringc = ['sitemc', 'sitemc']
    
def edittext(t):
    t = t.upper()
    return t

finallist = []
for i in range(3):
    letter = string.ascii_lowercase[i]
    finalist.append('string' + letter)
    finallist.append(edittext(('string' + letter).strip('\'')))

这是我给finallist的输出

Out [212]: ['stringa', 'STRINGA', 'stringb', 'STRINGB', 'stringc', 'STRINGC']

这就是我试图实现的目标:

['stringa', 'item1', 'item2', item3', 'stringb', 'sitem1', 'sitem2', 'stringc', 'sitemc', 'sitemc']


Tags: 方法stringletterappenditem1item2finallistitem3
1条回答
网友
1楼 · 发布于 2024-09-25 14:15:38

您可以尝试使用join,并在使用list.map映射字符串和自定义函数后:

import string

doc = ['This is the first string', 'This is the second string' ,'This is the third string']

def edittext(t):
    t = t.upper()
    return t

edited_doc=[]
for i,val in enumerate(doc):
    edited_doc.append('string'+string.ascii_lowercase[i])
    edited_doc.append(' '.join(map(edittext,val.split())))
    
print(edited_doc)

输出:

['stringa', 'THIS IS THE FIRST STRING', 'stringb', 'THIS IS THE SECOND STRING', 'stringc', 'THIS IS THE THIRD STRING']

也是一个建议,正如Muhammadrasul所说,你在分配一对(键,值),所以你可以考虑使用字典:

import string

doc = ['This is the first string', 'This is the second string' ,'This is the third string']

def edittext(t):
    t = t.upper()
    return t

edited_dict={'string'+string.ascii_lowercase[i]:' '.join(map(edittext,val.split())) for i,val in enumerate(doc)}

print(edited_dict)

输出:

{'stringa': 'THIS IS THE FIRST STRING', 'stringb': 'THIS IS THE SECOND STRING', 'stringc': 'THIS IS THE THIRD STRING'}

相关问题 更多 >