[使用两个列表写吉他音符

问题描述 投票:0回答:1

我有两个列表:

list1=('a','b','c')
list2=('2','1','3')

和一个文本文件文本文件有3行,所以我想添加第二行中的'a'在其他'-'中,第一行中的'b'其他人的'-',以及第三行中的'c''-'根据list1和list2的其他形式]

xxxx-b-
xxxxa--
xxxx--c
python list text
1个回答
0
投票

首要任务是使第一个列表正确排序。如果将zip这两个列表放在一起,然后根据(经过int转换的)行号进行排序,则这很容易:

>>> list1 = ['a', 'b', 'c']
>>> list2 = ['2', '1', '3']
>>> sorted(zip(list1, list2), key=lambda p: int(p[1]))
[('b', '1'), ('a', '2'), ('c', '3')]

然后您需要将字母格式化为适当的字符串。我会用类似的方法做到这一点:

'xxxx' + ''.join(char if char == letter else '-' for char in 'abc')

所以一起是:

>>> for row in [
...     'xxxx' + ''.join(char if char == letter else '-' for char in 'abc')
...     for letter, _line in sorted(zip(list1, list2), key=lambda p: int(p[1]))
... ]:
...     print(row)
...
xxxx-b-
xxxxa--
xxxx--c

现在,您只需要将其写到适当的文本文件中,而不用打印它;因为您没有指定要执行的操作(是特定的文本文件吗?是函数的参数吗?是您要附加的现有文件吗?)我将留给您填写该部分in。:)

© www.soinside.com 2019 - 2024. All rights reserved.