在Python中按特定顺序打印列表
key_file = open("key.txt", "r")
key = key_file.read().split(',')
text_file = open("plaintext.txt", "r")
text = text_file.read().split(' ')
key = map(int, key)
for i in range(len(key));
print text[i]
text_file.close()
key_file.close()
我刚开始学Python,但我对C语言有一点基础。我想按照列表'key'中的整数顺序来打印字符列表'text',也就是说,我想用key[ ]中的整数来决定打印text[ ]中的哪个字符。可能我现在的方法不太对,但这是我目前的进展。现在打印出来的'text'列表是按原来的顺序,而不是按key[ ]的顺序。
key_file.txt是一些随机的整数,范围从1到26。
text_file.txt包含26个字符,这里是从a到z。
输出的结果应该是按照key_file.txt的顺序重新排列的字母表。
3 个回答
0
这个方法应该适合你。我假设这些键是从零开始编号的。具体效果可能会根据文件的实际结构有所不同。
with open("key.txt", "r") as key_list:
with open("plaintext.txt", "r") as text_list:
for key in key_list:
try:
print text_list[key]
except IndexError:
print "Invalid Key"
1
因为你想打印不同的字符,所以不要把text
分成一个个单词。就把它当作一个整体的字符串来处理。
text = text_file.read()
接着,遍历key
里的内容。由于key.txt
里的数字是从1到26的,你需要减去1,这样才能把它们变成从0到25的数字。
for i in key:
print text[i - 1]
1
假设key是一个包含1到26的整数的列表,这些数字的顺序是随机的,而text是一个包含26个字符的列表:
key_file = open("key.txt", "r")
key = key_file.read().split(',')
text_file = open("plaintext.txt", "r")
text = text_file.read().split(' ')
key = map(int, key)
for i in key:
print text[i - 1]
text_file.close()
key_file.close()