有以下代码行,它从文件中读取成对的单词,将它们拆分,并返回一个元组,其中每个元组的第一个索引是第一个或第二个单词。例如,a
Bob, Smith
将分别转换为[(Bob, Smith)]
和[(Smith, Bob)]
。我将它映射到g.readlines()
.想知道是否可以将第二个参数传递给
flip = True
可以与 map 一起使用的更通用的 word_flip() 函数?first_word_is_first = map(first_second_split, g.readlines()) first_word_is_second = map(second_first_split, g.readlines())
关于更实用的方法的随机问题,如果给定一个字符串,并且我想根据每个单词的属性(即。)对该字符串进行分区,除了迭代和划分
Alex Smith AGE 35 420
之外,是否有更实用的方法来解决此类问题string.split()
将行转换为 str 变量、name
、age
或room_number
使用正则表达式?是否可以使用 map、filter 或 itertools?最好通过字符串一次。
问问题
167 次
2 回答
1
是的,在 a 中使用时,您可以使用 a
functools.partial
向函数添加其他参数map()
。from functools import partial first_word_is_first = map(partial(word_flip, flip=False), g.readlines()) first_word_is_second = map(partial(word_flip, flip=True), g.readlines())
不过,使用列表推导会更容易:
first_word_is_first = [word_flip(l, flip=False) for l in g.readlines()] first_word_is_second = [word_flip(l, flip=True) for l in g.readlines()]
您的字符串的结构方式(字段之间和字段内部的空格)您必须使用正则表达式或专用函数之类的方法来拆分字段。
于 2012-08-13T09:11:34.493 回答
0
2:
name, surname, n, age, room = 'Alex Smith AGE 35 420'.split()
从方法调用返回多个结果。
于 2012-08-13T09:11:35.333 回答