当前位置: 首页 > 面试题库 >

带有重复值和后缀的列表

钦枫
2023-03-14
问题内容

我有一个清单,a

a = ['a','b','c']

并需要复制一些带有后缀的值_ind(顺序很重要):

['a', 'a_ind', 'b', 'b_ind', 'c', 'c_ind']

我试过了:

b = [[x, x + '_ind'] for x in a]
c = [item for sublist in b for item in sublist]
print (c)
['a', 'a_ind', 'b', 'b_ind', 'c', 'c_ind']

是否有一些更好的,更多的pythonic解决方案?


问题答案:

您可以使其成为生成器:

def mygen(lst):
    for item in lst:
        yield item
        yield item + '_ind'

>>> a = ['a','b','c']
>>> list(mygen(a))
['a', 'a_ind', 'b', 'b_ind', 'c', 'c_ind']

您也可以使用itertools.productitertools.starmapitertools.chain嵌套式理解来做到这一点,但在大多数情况下,我希望使用一种易于理解的自定义生成器函数

借助python3.3,您还可以使用“yield from生成器委派”使这种优雅的解决方案更加简洁:

def mygen(lst):
    for item in lst:
        yield from (item, item + '_ind')


 类似资料:
  • 我有一个mysql数据库表,其中我需要将前缀“35-”添加到某个列/字段()的所有值中,该列/字段的号高于500。因此,例如,我希望productcode值更改为,并且在表的所有其他行中类似。 另外一个问题是,此列是该表的主键,但我试图通过添加一个额外的索引列,将其定义为主键,擦除“ProductCode”上的索引,并尝试以下查询(意图稍后再次将其定义为主索引)来解决这一问题: 我没有收到任何错误

  • 你好,Stack,我现在正想写一个RPN转换器,我是C新手。但是我遇到了问题。希望我能详细解释这些问题。我使用数组来堆叠运算符。当我开始讨论以下问题时,让我们使用示例“5 8”: 出于某种原因,它会将运算符推到堆栈上,但不会将运算符添加到后缀字符串变量中,因为我也在添加我的元素。我看了一下我的pop函数,这似乎是正确的,但我很困惑。如果你能把我引向正确的方向那就太好了。 这是我的完整代码: 另外,

  • 我正在编写一个bash shell脚本来输出文件名的后缀。 在这种情况下,我使用: 因此,输出例如: 但是,如果文件名没有后缀,因此没有点,我该怎么办?我的输出应该是“无后缀”,但我不知道如何用sed做到这一点。 编辑我已经尝试过的内容: 目录: 输入: 输出:

  • 最长的重复子串问题如下: 给定一个字符串w,找到至少出现在两个位置的w的最长子串。 这个问题可以在线性时间使用后缀树解决,在线性时间使用增强的后缀数组解决。 我的问题是——对于这个问题,有没有不涉及后缀树或后缀数组的线性时间算法?我很好奇,因为后缀树和后缀数组很难编码和操作,如果有一种算法解决这个问题,而不需要这些其他结构的编码或内存开销,那就太好了。 谢谢

  • 问题内容: 我有一个名为“ seeder”的软件包: 现在我想用MyFunc前缀调用所有函数 我想要这样的东西: 这个输出: EDIT1 :在此示例中,parentKey是在循环中更改的字符串变量 但是GC说: 使用没有选择器的包播种机 问题答案: 您无法通过函数名称获得函数,而这正是您想要做的。原因是,如果Go工具可以检测到未显式引用某个函数(因此无法访问该函数),则该函数甚至可能无法编译为可执

  • 我试图通过datatable显示bean中包含的列表中的数据,并在用户键入时由代码执行操作。它最初显示ok,对列表的更改将反映在UI中。 我的问题是,输入到inputText中的值被忽略。尝试寻找解决方案,我尝试在值更改时检查列表,还尝试在没有ajax的情况下进行检查,以防出现问题(没有更改)。我尝试过使用会话和视图范围bean,但运气不佳。试着用POJO包线。 这里疯了。感觉我错过了一些明显的东