< edycja> Dziękuję wszystkim, którzy odpowiedzieli do tej pory. Zip i os.path.join są naprawdę pomocne. Wszelkie sugestie dotyczące sposobów na liście licznika z przodu, nie robiąc coś takiego:Python pętle z wieloma listami?
zip(range(len(files)), files, directories)
</edit>
Cześć,
Jestem w procesie uczenia się Python, ale pochodzę z tła, w którym typowy jest następujący pseudokod:
directories = ['directory_0', 'directory_1', 'directory_2']
files = ['file_a', 'file_b', 'file_c']
for(i = 0; i < directories.length; i++) {
print (i + 1) + '. ' + directories[i] + '/' + files[i] + '\n'
}
# Output:
# 1. directory_0/file_a
# 2. directory_1/file_b
# 3. directory_2/file_c
W języku Python, sposób w jaki bym napisał powyższe teraz, byłoby to tak:
directories = ['directory_0', 'directory_1', 'directory_2']
files = ['file_a', 'file_b', 'file_c']
for i in range(len(directories)):
print '%s. %s/%s' % ((i + 1), directories[i], files[i]
# Output:
# 1. directory_0/file_a
# 2. directory_1/file_b
# 3. directory_2/file_c
Podczas czytania Zanurkuj w Pythonie, Mark Pilgrim mówi, że za pomocą pętli dla liczników jest „Visual Basic stylu myślenia” (Simple Counters). Dalej pokazuje, jak używać pętli w słownikach, ale nigdy tak naprawdę nie rozwiązuje problemu w pythonie, jeśli chodzi o sposób, w jaki liczniki pętli są zwykle używane w innych językach.
Miałem nadzieję, że ktoś może mi pokazać, jak poprawnie napisać powyższy scenariusz w Pythonie. Czy można to zrobić inaczej?
Jeśli wziąłem inkrementującą liczbę linii, czy możliwe jest dopasowanie obu list razem przy użyciu pewnego rodzaju zrozumienia list?
Na przykład, jeśli wszystko, co chciałem z wyjścia było to (bez liczników, jest to możliwe z listowego):
# Output:
# directory_0/file_a
# directory_1/file_b
# directory_2/file_c
Dzięki z góry za wszelką pomoc.
dodałem przykład z licznika – SilentGhost
mogę sugerować, że są „Listy” nie „układy”, to mały punkt. –
@SilentGhost Wielkie dzięki, zaznaczyłem twoją odpowiedź jako zaakceptowaną odpowiedź. Doceniam pomoc! @Ali Dobra uwaga, zaktualizowałem swój post, by mówić "listy" zamiast "tablice". –