Python 如何使用字符串访问变量?
我在访问具有两个条件的多个列表时遇到问题:Python 如何使用字符串访问变量?,python,Python,我在访问具有两个条件的多个列表时遇到问题:Case\u Num和Case\u Type。我不知道如何修复连接字符串和列表对象的错误 我尝试过使用循环、组合字符串和常规整数值。不幸的是,我一直遇到同样的错误。任何帮助都将被告知 _2019_case_1=[] _2019_case_2=[] _2019_case_3=[] Case_Num=[2019,2019,2019,2020,2020,2020,2024,2024,2024,2029,2029,2029] Case_Type=[1,2
Case\u Num
和Case\u Type
。我不知道如何修复连接字符串和列表对象的错误
我尝试过使用循环、组合字符串和常规整数值。不幸的是,我一直遇到同样的错误。任何帮助都将被告知
_2019_case_1=[]
_2019_case_2=[]
_2019_case_3=[]
Case_Num=[2019,2019,2019,2020,2020,2020,2024,2024,2024,2029,2029,2029]
Case_Type=[1,2,3,1,2,3,1,2,3,1,2,3]
dr = "F:\C\FE\CD\Tran\ctg"
read_files =[]
for root, _, files in os.walk(dr):
read_files_2="_"+Case_Num+"_case_"+Case_Type
for file in files:
if file in read_files_2:
read_files.append(os.path.join(root, file))
您需要更改
将读取文件分配给集合的行。最好只做一次,所以在循环之前分配它。如评论中所述,您可以使用itertools.product
进行易于扩展的更改
from itertools import product
_2019_case_1=[]
_2019_case_2=[]
_2019_case_3=[]
dr = "F:\C\FE\CD\Tran\ctg"
read_files =[]
read_files_2= {f"_{num}_case_{type}" for num, type in product((2019,2020,2024,2029), (1,2,3))}
for root, _, files in os.walk(dr):
for file in files:
if file in read_files_2:
read_files.append(os.path.join(root, file))
Case\u Num
和Case\u Type
是列表。通过将它们添加到str
,您希望发生什么?使用字典而不是在变量名中编码信息→ read_files_2=cases[(n,t)]
其中n
是Case_Num
s中的一个,而t
是Case_Type
s中的一个。您还应该固定间距。逗号后应留有空格,运算符前后应留有空格(如+
)。我读这个问题的时间越长,就越不了解你想做什么。。。请澄清。您可以在[2019202024229]
和[1,2,3]
上使用itertools.product
,使其更简短易读(并且易于扩展到更多num和类型){f{num}{case{type}对于num,键入产品((2019202020242029),(1,2,3))}
我得到了一个带有引号的语法错误@Jabi没有Python 3.6只需使用字符串连接,就像在你的问题中或str.formatread\u files\u 2={{uU{num}\u case\uU{type}。format(num,type)for num,type in product((2019202020242029),(1,2,3))
我尝试了这个方法,但是我得到了一个keyrorm:'num'
from itertools import product
_2019_case_1=[]
_2019_case_2=[]
_2019_case_3=[]
dr = "F:\C\FE\CD\Tran\ctg"
read_files =[]
read_files_2= {f"_{num}_case_{type}" for num, type in product((2019,2020,2024,2029), (1,2,3))}
for root, _, files in os.walk(dr):
for file in files:
if file in read_files_2:
read_files.append(os.path.join(root, file))