Python печать первого элемента каждого вложенного списка одной командой печати - PullRequest
0 голосов
/ 19 апреля 2020

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

tableData = [
['apples', 'oranges', 'cherries', 'banana'],
['Alice', 'Bob', 'Carol', 'David'], 
['dogs', 'cats', 'moose', 'goose']]
print(tableData[:][1])

Ответы [ 7 ]

1 голос
/ 19 апреля 2020

Вы должны использовать [0], это получит первый элемент в списке, затем вы сделаете a для l oop до go через каждый элемент в списке, например:

tableData = [
['apples', 'oranges', 'cherries', 'banana'],
['Alice', 'Bob', 'Carol', 'David'], 
['dogs', 'cats', 'moose', 'goose']]
for i in tableData:
    print(i[0])

I надеюсь, что это имеет смысл.

1 голос
/ 19 апреля 2020

Потому что tableData[:] означает весь список, который является просто копией tableData. Таким образом, tableData[:][1] - это 1-й (второй) элемент в tableData, который ['Alice', 'Bob', 'Carol', 'David'] в вашем коде.

1 голос
/ 19 апреля 2020

Это не работает, потому что tableData[:] возвращает весь список. Это эквивалент tableData (без [:]). Как писал Джо sh, вы можете использовать понимание списка, чтобы получить нужные элементы.

1 голос
/ 19 апреля 2020

tableData[:] возвращает весь список. Таким образом, tableData[:][1] возвращает только второй элемент в tableData, который является вашим списком ['Alice', 'Bob', ...].

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

print [sublist[0] for sublist in tableData]

Вышеуказанный код эквивалентен этому:

first_elements = []
for sublist in tableData:
    first_elements.append(sublist[0])
print first_elements
0 голосов
/ 20 апреля 2020

[ from: to] оператор означает нарезку -> возвращает новую строку.

Например:

lst = [0, 1, 2, 3] 
lst[0:2] #will return [0, 1]

[:] вернет список как есть.

Итак, если вы хотите получить доступ к первому типу значения: lst [0] В своем коде вы ввели tableData [1], поэтому он возвращает второй индекс, потому что индексы начинаются с нуля

0 голосов
/ 19 апреля 2020

вот код для этого, который дает чистый разделенный вывод print(*[i[0] for i in tableData]) В вашем tableData [:] будет оцениваться в TableData, затем TableData [1] будет оцениваться в ['Alice', 'Bob', 'Carol', «Давид»]

0 голосов
/ 19 апреля 2020
print([i[0] for i in tableData])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...