Python генерация списка из двух строк - PullRequest
0 голосов
/ 27 февраля 2020

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

name='suraj,rohit,rahul'
score='34,45,55'

Я хочу составить такой список:

[['suraj', 34], ['rohit', 45], ['rahul', 55]]

Пожалуйста, помогите.

Ответы [ 5 ]

3 голосов
/ 27 февраля 2020

Вы можете использовать:

list(zip(name.split(','), score.split(',')))

[('suraj', '34'), ('rohit', '45'), ('rahul', '55')]

РЕДАКТИРОВАТЬ

Люди хотели списки вместо кортежей и int вместо строк, здесь мы go:

[[x, int(y)] for x, y in zip(name.split(','), score.split(','))]

[['suraj ', 34], [' rohit ', 45], [' rahul ', 55]]

2 голосов
/ 27 февраля 2020

Вы можете использовать понимание списка.

[[i,int(j)] for i,j in zip(name.split(','), score.split(','))]
#[['suraj', 34], ['rohit', 45], ['rahul', 55]]
1 голос
/ 27 февраля 2020

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

 name=""
 score=""
 Dictionary={"suraj,":34,"rohit,":45,"rahul":55}
 for A,B in Dictionary.items():
     name=name+A
     score=score+str(B)+","
 print(name)
 print(score)

Надеюсь, это очистило ваши сомнения

0 голосов
/ 27 февраля 2020

Вместо этого вы можете использовать лямбда-функцию:

    print(list(map(lambda x,y: [x,y], name.split(','), score.split(','))))
0 голосов
/ 27 февраля 2020

Вы можете объединить функции map () и zip () для получения списка списка, а также для преобразования списка строк в список целых чисел:

name='suraj,rohit,rahul'
score='34,45,55'

print (list(map(list, zip(name.split(','), map(int,score.split(','))))))

вывод:

[['suraj', 34], ['rohit', 45], ['rahul', 55]]

Вы также можете использовать basi c для l oop:

name='suraj,rohit,rahul'.split(',') # get list of names
score='34,45,55'.split(',') # get list of scores


result = []
for i in range(len(name)):
    result.append([name[i],int(score[i])])

print (result)

выход:

[['suraj', 34], ['rohit', 45], ['rahul', 55]]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...