При сравнении двух наборов next_id и follower_id результат возврата, кажется, разбивает все.Сравнение двух наборов данных с перекрестным соединением в Python
import re
id1 = '[User(ID=1234567890, ScreenName=RandomNameHere), User(ID=233323490, ScreenName=AnotherRandomName), User(ID=4459284, ScreenName=YetAnotherName)]'
id2 = '[User(ID=1234467890, ScreenName=sdf), User(ID=233323490, ScreenName=AnotherRandomName), User(ID=342, ScreenName=443)]'
following_id = ', '.join(re.findall(r'ID=(\d+)', id1))
follower_id = ', '.join(re.findall(r'ID=(\d+)', id2))
a = list(set(following_id).intersection(follower_id))
print a
В результате с [' ', ',', '1', '0', '3', '2', '5', '4', '7', '6', '9', '8']
Я хотел бы, чтобы результаты были ['233323490','54321']
, которые являются двумя идентификаторами, которые соответствуют между двумя наборами.
следующие работы для меня:
list1 = [1234567890, 233323490, 4459284, 230, 200, 234, 200, 0002]
list2 = [1234467890, 233323490, 342, 101, 234]
a = list(set(list1).intersection(list2))
print a
с результатом [233323490, 234]
ли это делать с типом данных для following_id и follower_id?
''. '. Join() 'будет возвращать одну строку. Может быть, если вы удалите это в определении 'follow_id' и' follower_id', в конце концов, вам нужны эти два списка для поиска пересечения? 're.findall()' уже возвращает список – TuanDT
@ Tuan333 Имеет смысл, спасибо за быстрый ответ. – New