我有两个列表:
list1=('a','b','c')
list2=('2','1','3')
和一个文本文件文本文件有3行,所以我想添加第二行中的'a'
在其他'-'
中,第一行中的'b'
其他人的'-'
,以及第三行中的'c'
'-'
根据list1和list2的其他形式]
xxxx-b-
xxxxa--
xxxx--c
首要任务是使第一个列表正确排序。如果将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。:)