0
  1. 有以下代码行,它从文件中读取成对的单词,将它们拆分,并返回一个元组,其中每个元组的第一个索引是第一个或第二个单词。例如,aBob, 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())
    
  2. 关于更实用的方法的随机问题,如果给定一个字符串,并且我想根据每个单词的属性(即。)对该字符串进行分区,除了迭代和划分Alex Smith AGE 35 420之外,是否有更实用的方法来解决此类问题string.split()将行转换为 str 变量、nameageroom_number使用正则表达式?是否可以使用 map、filter 或 itertools?最好通过字符串一次。

4

2 回答 2

1
  1. 是的,在 a 中使用时,您可以使用 afunctools.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()]
    
  2. 您的字符串的结构方式(字段之间和字段内部的空格)您必须使用正则表达式或专用函数之类的方法来拆分字段。

于 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 回答