【发布时间】:2018-03-19 11:59:24
【问题描述】:
我有以下数据结构:
var = [['x_A_B', 1], ['x_A_C', 1], ['x_B_A', 1], ['x_B_D', 1], ['x_C_A', 1], ['x_C_D', 1], ['x_D_B', 1], ['x_D_C', 1]]
我想将这些值提取为
var2 = [('A', 'B'), ('A', 'C'), ('B', 'A'), ('B', 'D'), ('C', 'A'), ('C', 'D'), ('D', 'B'), ('D', 'C')]
目前我使用以下行
var2 = [(item[0].split("_")[1], item[0].split("_")[2]) for item in var]
但是写起来很乏味,而且还要计算同样的split两次。
有没有办法以紧凑的方式写这个,也许用关键字with ... as,像这样?
# not working
var2 = [(u, v) with item[0].split("_") as _, u, v for item in var]
编辑:我正在寻找一个更通用的解决方案,我可以使用具有任意长度子字符串的拆分字符串的任意索引,我只是使用了一个不正确的示例。查看我接受的解决方案。
【问题讨论】:
-
item[0].split("_")[1:]
标签: python generator with-statement