простой вопрос по расколу питона - PullRequest
0 голосов
/ 01 марта 2011

Не уверен, почему последний отпечаток выключен? Пожалуйста, смотрите комментарии для конкретного вопроса

 john = ['john doe', 44, 32000]

jane = ['jane doe', 23, 12000]

people = [john, jane]

for p in people: 
    #===========================================================================
    # p[0] prints "john doe" as expected
    # p[0].split() prints ['john', 'doe'] as expected
    # p[0].split()[0] prints "john" and "jane" as expected
    #===========================================================================
    for x in p[0].split():
        print('--> ', x[0]) 

    # prints "j","d" - not sure why
    # expected "john" and "jane"

Ответы [ 3 ]

4 голосов
/ 01 марта 2011
  1. p [0] .split () возвращает список строк
  2. для x in ... имеет дело с каждой строкой в ​​списке
  3. x [0], следовательно, первый символ в строке

вы, вероятно, хотите избавиться от индекса после 'x'.

0 голосов
/ 01 марта 2011

Как вы сказали, p [0] .split () дает вам ['john', 'doe'].В вашем цикле x по очереди ссылается на элементы этого списка, «john» и «doe».x [0] относится к первому элементу любого из них - к первому символу в строке.

0 голосов
/ 01 марта 2011

Используйте это так

for p in people: 
    #===========================================================================
    # p[0] prints "john doe" as expected
    # p[0].split() prints ['john', 'doe'] as expected
    # p[0].split()[0] prints "john" and "jane" as expected
    #===========================================================================
    for x in p.split():
        print('--> ', x) 
...