在Python中按特定顺序打印列表

时间:2014-09-12 01:45:26

标签: python list

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'(char列表),或者基本上使用key []整数来指定要打印的text []的索引。我可能会以完全错误的方式解决这个问题,但这是我到目前为止所做的。它以原始顺序打印文本列表,而不是按键[]的顺序。

key_file.txt是一个随机分类的整数,范围从1-26。 text_file.txt是26个字符,在这种情况下它是a到z。 输出应该基本上是根据key_file.txt重新排列的字母。

3 个答案:

答案 0 :(得分:1)

由于您要打印不同的字符,请不要将text分成单词。将它保留为单个字符串。

text = text_file.read()

然后遍历key中的条目。由于key.txt中的数字是1-26,因此您需要减去1以将其转换为0-25。

for i in key:
    print text[i - 1]

答案 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()

答案 2 :(得分: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"