Как я могу получить общие элементы в первых двух списках и сохранить их в новый список в python 3?

#python #python-3.x

#python #python-3.x

Вопрос:

 list1 = [input("Enter the values for the first list: ")]
list2 = [input("Enter the values for the second list: ")]
print(list1)
print(list2)
list3 = []
for element in list1:
    if element in list2:
        list3 = list2.append(element)
print(list3)
 

Это то, что я уже пробовал. но я получаю пустой список как list3!

Комментарии:

1. Используйте set . intersect из двух списков является общим! docs.python.org/3/library /…

2. Если вы просто используете [input()] , ваш список будет состоять из одной строки, что, вероятно, не то, что вы хотите.

Ответ №1:

 list1 = [input("Enter the values for the first list: ")]
list2 = [input("Enter the values for the second list: ")]
 

list1 и list2 будут списком строк. следовательно, вы получаете list3 пустым. PFB-код и o / p:

 list1 = [input("Enter the values for the first list: ")]
list2 = [input("Enter the values for the second list: ")]
print(list1)
print(list2)
list3 = []
for element in list1:
    print(type(element))
    if element in list2:
        list3.append(element)

print(list3)
 

вывод:

 Enter the values for the first list: 1 2 3 4 5
Enter the values for the second list: 2 3 4 5 6 
['1 2 3 4 5']
['2 3 4 5 6']
<class 'str'>
[]
 

чтобы добавить правильный путь. Пожалуйста, смотрите Ниже, например. для получения list1 и list2:

 # list1 = [input("Enter the values for the first list: ")]
# list2 = [input("Enter the values for the second list: ")]
list1 = [int(item) for item in input("Enter the 1st list items : ").split()]
list2 = [int(item) for item in input("Enter the 2nd list items : ").split()]

print('1st list: ',list1)
print('2nd list: ',list2)
list3 = []
for element in list1:
    if element in list2:
        list3.append(element)

print('common: ', list3)
 

вывод:

 Enter the 1st list items : 1 2 3 4 5
Enter the 2nd list items : 3 4 5 6 7
1st list:  [1, 2, 3, 4, 5]
2nd list:  [3, 4, 5, 6, 7]
common:  [3, 4, 5]
 

Комментарии:

1. Эта функция split() была пустой. поэтому мне пришлось использовать разделитель внутри этого, и он работал отлично. Спасибо за помощь, приятель.

2. @Python_beginner я ввел ввод в качестве разделителя пробелов, поэтому для метода разделения разделителем по умолчанию является любой пробел. если вы вводите какой-либо другой разделитель во входных данных, вы можете указать разделитель. если это решит ваш вопрос, вы можете принять это как ответ и проголосовать, пожалуйста 🙂

Ответ №2:

Вы не можете использовать [input('Enter numbers: ')] для получения чисел для списка. Это создаст список, содержащий входную строку. Что вам действительно нужно сделать, это сначала ввести входные данные для чисел в переменной, скажем list1_inp , а затем разделить list1_inp на основе использования пробелов nums = list1_inp.split(' ') . Теперь вы можете перебирать свой список, проверяя наличие общих элементов.

 list1_inp = input('Enter the elements separated by spaces : ')
nums = list1_inp.split()
list2_inp = input('Enter the elements separated by spaces : ')
nums2 = list2_inp.split()

temp = nums2
final = []
for elem in nums:
   if elem in temp:
      final.append(elem)
      temp.remove(elem)

print(final)
 

Ответ №3:

 mylist1 = [1,2,3,4,5]
mylist2 = [2,3,4,5,6] # let these be the two lists


def func():
    mylist3 = []  # This is the list where the common numbers append
    for x in mylist1:
        for y in mylist2:
            if x==y:
                mylist3.append(x)
            else:
                pass
return mylist3