Skip to main content
 首页 » 编程设计

python之Python 中的 For Loop 没有正确地将列表分成子集

2025年05月04日15飞鱼

Python 的新手就这么简单。

我正在尝试找到一种方法来查找字符串和变量串联的列表是否是另一个列表的子集。请参阅下面的代码和结果

y = ['test_sam_20190624.csv', 'test_phil_20190624.csv', 'test_bill_20190624.csv', 'test_jess_20190624.csv', 'test_issy_20190624.csv', 'test_clinton_20190624.csv'] 
x = ['sam', 'jack', 'bill', 'rodry', 'clinton'] 
print('\nFile list is ') 
print(*y, sep="\n") 
print('\nNeeded names are ') 
print(*x, sep="\n") 
 
datetoday = '20190624' 
 
incl = [p for p in x if 'test'+p+datetoday+'.csv' in y] 
not_incl = [p for p in x if 'test'+p+datetoday+'.csv' not in y] 
 
print("\n Included") 
print(*incl, sep="\m") 
print("\n Not included") 
print(*not_incl, sep="\n") 

下面给出输出:

File list is  
test_sam_20190624.csv 
test_phil_20190624.csv 
test_bill_20190624.csv 
test_jess_20190624.csv 
test_issy_20190624.csv 
test_clinton__20190624.csv 
 
Needed names are  
sam 
jack 
bill 
rodry 
clinton 
 
 Included 
 
 
 Not included 
sam 
jack 
bill 
rodry 
clinton 
 
Process finished with exit code 0 

但我肯定希望 incl = ['sam' 'bill 'clinton'] 作为输出?输出为:

 Included 
sam 
bill 
clinton 
 
 
 Not included 
jack 
rodry 

我哪里错了?也许在字符串的连接中?

请您参考如下方法:

您没有在搜索中包含完整的字符串:

incl = [p for p in x if 'test'+'_'+p+'_'+datetoday+'.csv' in y] 
not_incl = [p for p in x if 'test'+'_'+p+'_'+datetoday+'.csv' not in y] 

你忘记了查找中的下划线。

[dkennetz@nodecn203  fun]$ python3.5 fun.py 
 
File list is 
test_sam_20190624.csv 
test_phil_20190624.csv 
test_bill_20190624.csv 
test_jess_20190624.csv 
test_issy_20190624.csv 
test_clinton_20190624.csv 
 
Needed names are 
sam 
jack 
bill 
rodry 
clinton 
 
 Included 
sam\mbill\mclinton 
 
 Not included 
jack 
rodry