在python中通过if条件生成新变量

2024-06-26 13:50:06 发布

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

我有一个python列表:

['ABCD_BAND1.TXT', 'ABCD_BAND2.TXT', 'ABCD_BAND3.TXT', 'ABCD_BAND4.TXT', 'ABCD_BAND5.TXT', 'ABCD_BAND6.TXT', 'ABCD_BAND7.TXT'] 

我想选取ABCD_BAND4.TXT&;ABCD_BAND5.TXT并将它们定义为两个新变量,并基于这两个变量进行分析。我已经写了以下代码,但它不工作

分配变量

dataList = ['ABCD_BAND1.TXT', 'ABCD_BAND2.TXT', 'ABCD_BAND3.TXT', 'ABCD_BAND4.TXT', 'ABCD_BAND5.TXT', 'ABCD_BAND6.TXT', 'ABCD_BAND7.TXT']
for item in dataList:
    if item.endswith("BAND4.TXT"):
        Item = "band4"
for item in dataList:
    if item.endswith("BAND5.TXT"):
        Item = "band5"

我该怎么修?你知道吗

干杯


Tags: intxtforifitemabcdendswithdatalist
3条回答

您需要声明两个单独的变量来存储返回的输出。你知道吗

>>> s = ['ABCD_BAND1.TXT', 'ABCD_BAND2.TXT', 'ABCD_BAND3.TXT', 'ABCD_BAND4.TXT', 'ABCD_BAND5.TXT', 'ABCD_BAND6.TXT', 'ABCD_BAND7.TXT']

>>> item4 , item5 = "",""
>>> for i in s:
        if i.endswith("BAND4.TXT"):
            item4 = i
        elif i.endswith("BAND5.TXT"):
            item5 = i

>>> item4
'ABCD_BAND4.TXT'
>>> item5
'ABCD_BAND5.TXT'
>>> 

这个方法对我有效

>>> DataList = ['ABCD_BAND1.TXT', 'ABCD_BAND2.TXT', 'ABCD_BAND3.TXT', 'ABCD_BAND4.TXT', 'ABCD_BAND5.TXT', 'ABCD_BAND6.TXT', 'ABCD_BAND7.TXT']

>>> band4 = [i for i in DataList if "BAND4.TXT" in i][0] # 0 index for first occurance in list
>>> band4 
'ABCD_BAND4.TXT'
>>> band5 = [i for i in DataList if "BAND5.TXT" in i][0] # 0 index for first occurance in list
>>> band5
'ABCD_BAND5.TXT'

你可以根据你的目的使用结果列表。你知道吗

raw_list = ['ABCD_BAND1.TXT', 'ABCD_BAND2.TXT', 'ABCD_BAND3.TXT','ABCD_BAND4.TXT', 'ABCD_BAND5.TXT', 'ABCD_BAND6.TXT', 'ABCD_BAND7.TXT']

chose_list =  ['ABCD_BAND4.TXT', 'ABCD_BAND5.TXT']

result_list = [item for item in raw_list if item in chose_list] 

相关问题 更多 >