Python 如何使此函数应用于文件中的每个单词?

Python 如何使此函数应用于文件中的每个单词?,python,Python,我不想讨论不必要的细节,但我有一个函数convert,可以将单词转换为其他内容。现在我想让它读取一个文件并转换每个单词。假设我已经有了读取文件和转换的代码。唯一的问题是,对于我给出的论点,转换似乎只在非常一般的条件下起作用。例如,我写 return convert("string") 文件中的每个单词都被转换成“字符串”的转换,这不是我想要做的 我想要的是将convert适当地应用于每个单词。如何使convert接受一个参数而不是我给定的字符串 word = ["dog", "cat", "c

我不想讨论不必要的细节,但我有一个函数
convert
,可以将单词转换为其他内容。现在我想让它读取一个文件并转换每个单词。假设我已经有了读取文件和转换的代码。唯一的问题是,对于我给出的论点,转换似乎只在非常一般的条件下起作用。例如,我写

return convert("string")
文件中的每个单词都被转换成“字符串”的转换,这不是我想要做的

我想要的是将convert适当地应用于每个单词。如何使convert接受一个参数而不是我给定的字符串

word = ["dog", "cat", "cow", "mouse"]

for i in word:
    print convert("string")

显然会打印出四份“字符串”的转换,而不是四个字的转换。您需要提供更多详细信息,说明为什么要传递一个常量值“string”,而不是要转换的单词(在本例中为“
i
”),作为转换函数的参数。

让我们假设
convert
反转字符串(即,“hello”变为“olleh”)

s = "this is a string of words"
a = s.split()
# a contains ['this', 'is', 'a', 'string', 'of', 'words']
output = map(convert, a)
# output contains ['siht', 'si', 'a', 'gnirts', 'fo', 'sdrow']
现在,要将
convert
应用于数组中的每个字符串,请使用Python的
map
函数

s = "this is a string of words"
a = s.split()
# a contains ['this', 'is', 'a', 'string', 'of', 'words']
output = map(convert, a)
# output contains ['siht', 'si', 'a', 'gnirts', 'fo', 'sdrow']

此程序将随机洗牌所有输入字中的字母:

import random
import sys

def convert(item):
        ret=[x for x in item]
        random.shuffle(ret)
        return "".join(ret)

with open(sys.argv[1]) as f:
        for line in f:
                print " ".join(convert(word) for word in line.rstrip().split())
如您所见,
convert
应用于每个输入字。这是您需要的应用程序类型吗