Моя цель - использовать Python 3, чтобы проверить, есть ли какие-либо три верхних буквы, которые перекрываются между List_A и List_B, и распечатать данные перекрытия из List_B. List_A = ["apple123", "banana3", & ...

2
cjeng2 6 Апр 2021 в 01:41

2 ответа

Лучший ответ

Код печатал элементы в трехбуквенном списке. Вы можете сначала получить его индекс и распечатать перекрывающийся с тем же индексом в исходном списке.

# for i in List_A1:               # changes from here...
for i in range(len(List_A1)):   # per each index i in List_A1
    if List_A1[i] in List_B1:   # element i overlapped in List_B1
        print(List_A[i])        # print the item in List_A by same index
0
Simon 5 Апр 2021 в 23:52

Если я понимаю, чего вы пытаетесь достичь, вы можете упростить свой код следующим образом:

List_A = ["apple123", "banana3", "345banana", "cat123", "apple456"]
List_B = ["apple123", "345123", "dog234", "apple4", "cat002345"]

set_a = set(List_A)
set_b = set(List_B)
# Get a list of all items in List_A that also are in List_B
intercepts = list(set_a.intersection(set_b)) # Returns ['apple123']

# Get 1 line for each intercepted item
# Prints a list of the matching items in List_B vs the previous intercept,
# taking only the first 3 letters

for intercept in intercepts:
    print([i for i in List_B if i[0:3] in intercept])

# This prints ['apple123', 'apple4']
1
Rodrigo A 5 Апр 2021 в 23:02