Почему это не печатать тот же список - PullRequest
0 голосов
/ 26 сентября 2018
new_list=["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"] 

all_possible=[] #print of all possible combinations
y=0
z=0
def writer():
    for z in range(0, 26):
        all_possible.append(new_list[0] + "" + new_list[y] + "" + new_list[z])
    z = 0

def reader():
    for y in range(0, 26):
        writer()

reader()
print(all_possible)  
all_possible=[]



for y in range(0, 26):
    for z in range(0, 26):
        all_possible.append(new_list[0] + "" + new_list[y] + "" +new_list[z])
    z = 0
print(all_possible)

Итак, я создал этот код для печати списка, который печатает все комбинации алфавита с 3 символами, и я также хочу сделать это с помощью функции, но по какой-то причине, когда я помещаю в функцию то же самое,не печатать так же по какой-то причине.Вы можете помочь?

Ответы [ 3 ]

0 голосов
/ 26 сентября 2018

Если вы хотите, чтобы оба списка давали одинаковые выходные данные, вы должны добавить параметр в функцию записи.В противном случае значение y всегда будет равно нулю и никогда не изменится.

new_list=["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"] 
all_possible1=[] #print of all possible combinations
y=0
z=0
def writer(y):
    for z in range(0, 26):
        all_possible1.append(new_list[0] + "" + new_list[y] + "" + new_list[z])
    z = 0

def reader():
    for y in range(0, 26):
        writer(y)

reader()
print(all_possible1)
all_possible2=[]



for y in range(0, 26):
    for z in range(0, 26):
        all_possible2.append(new_list[0] + "" + new_list[y] + "" +new_list[z])
    z = 0
print(all_possible2)
print(all_possible2 == all_possible1)
0 голосов
/ 26 сентября 2018

Если вы хотите сделать это легко

import itertools
list(itertools.combinations(new_list, 3))

Но в соответствии с кодом, который вы разместили, я думаю, что вы захотите сделать это по-своему и узнать больше о синтаксисе в python, так что ответ таков:просто предложение

0 голосов
/ 26 сентября 2018

Ваши функции должны принимать параметры, чтобы вы могли передать ссылку на список для функций, которые нужно изменить:

new_list=["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"]

all_possible=[] #print of all possible combinations
def writer(l, y):
    for z in range(0, 26):
        l.append(new_list[0] + "" + new_list[y] + "" + new_list[z])

def reader(l):
    for y in range(0, 26):
        writer(l, y)

reader(all_possible)
print(all_possible)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...