我有两套,如下所示
设置A:
(['African American and Japanese', 'Indian', 'Chinese'])
B组:
(['African', 'American', 'African American', 'Chinese', 'Russian'])
我希望输出是(['African American', 'Chinese'])
,但我的脚本只给我中文或非洲、美国、中国(非洲和美国分开,我知道我的脚本是这样的,但不知道如何编辑)。你知道吗
我已经试过了。你知道吗
import csv
alist, blist = [], []
with open("sample.csv", "rb") as fileA:
reader = csv.reader(fileA, delimiter=',')
for row in reader:
for row_str in row:
alist.append(row_str)
#alist = alist.strip().split() #If I use this, it also prints African, but doesn't print African American.
with open("ethnicity.csv", "rb") as fileB:
reader = csv.reader(fileB, delimiter='\n')
for row in reader:
blist += row
blist = [x.lower() for x in blist]
first_set = set(alist)
second_set = set(blist)
print [s for s in first_set if second_set in s]
编辑:
SetA中的元素并不总是用“和”隔开,它可以是其他任何东西,也可以只是一个空格。你知道吗
您可以重新排列列表,即当列表项包含
"and"
作为子字符串时,将其拆分 然后使用set的intersection
方法从两个列表中获取公共项。你知道吗代码:
输出:
这有用吗?你知道吗
如果可以是分隔单词的任何字符串(包括空格),则可以执行以下操作:
当
;
将列表中的两个单词分隔开时,它将不起作用。。。但我认为当你有一个非大写的单词分隔符时,它可以处理所有的情况。你知道吗相关问题 更多 >
编程相关推荐