相关疑难解决方法(0)

有没有一种功能性的方法来做到这一点?

def flattenList(toFlatten):
 final=[]
 for el in toFlatten:
  if isinstance(el, list):
   final.extend(flattenList(el))
  else:
   final.append(el)
 return final
Run Code Online (Sandbox Code Playgroud)

当我不知道列表的嵌套程度时,这是我能想到的唯一方法.

python sequences

5
推荐指数
2
解决办法
360
查看次数

更优雅的方式来实现类似regexp的量词

我正在写一个简单的字符串解析器,它允许类似regexp的量词.输入字符串可能如下所示:

s = "x y{1,2} z"
Run Code Online (Sandbox Code Playgroud)

我的解析器函数将此字符串转换为元组列表:

list_of_tuples = [("x", 1, 1), ("y", 1, 2), ("z", 1, 1)]
Run Code Online (Sandbox Code Playgroud)

现在,棘手的一点是我需要一个由量化指定的所有有效组合的列表.组合都必须具有相同数量的元素,并且该值None用于填充.对于给定的示例,预期输出为

[["x", "y", None, "z"], ["x", "y", "y", "z"]]
Run Code Online (Sandbox Code Playgroud)

我确实有一个可行的解决方案,但我对它并不满意:它使用两个嵌套for循环,我发现代码有点模糊,所以有一些尴尬和笨拙的事情:

import itertools

def permute_input(lot):
    outer = []
    # is there something that replaces these nested loops?
    for val, start, end in lot:
        inner = []
        # For each tuple, create a list of constant length
        # Each element contains a different number of 
        # repetitions of the value …
Run Code Online (Sandbox Code Playgroud)

python regex python-itertools

5
推荐指数
1
解决办法
231
查看次数

如何从Python中的dataframe columns元素创建字符串?

给定一个数据帧df,(现实生活是+1000行df).元素ColB是列表列表.

  ColA    ColB
0  'A'    [['a','b','c'],['d','e','f']]
1  'B'    [['f','g','h'],['i','j','k']]
2  'A'    [['l','m','n'],['o','p','q']]
Run Code Online (Sandbox Code Playgroud)

如何ColC使用不同列中的元素有效地创建一个字符串,如下所示:

      ColC
'A>+a b:c,+d e:f'
'B>+f g:h,+i j:k'
'A>+l m:n,+o p:q'
Run Code Online (Sandbox Code Playgroud)

我尝试了df.apply这些方法,灵感来自于:

df['ColC'] = df.apply(lambda x:'%s>' % (x['ColA']),axis=1)
Run Code Online (Sandbox Code Playgroud)

这适用于字符串的前2个元素.其余的都很难过.

python string dataframe pandas

5
推荐指数
1
解决办法
80
查看次数

获取python列表中的所有项目?

获取列表中的项目数非常容易len(list),但是假设我有一个矩阵,例如: [[1,2,3],[1,2,3]] 是否有返回 6 的 Pythonic 方法?或者我必须迭代。

python list python-3.x

5
推荐指数
1
解决办法
2万
查看次数

如何在python中将一个列表的列表压缩成单个列表?

我有一个对象列表,其中对象可以是列表或标量.我想要一个只有标量的扁平列表.例如:

L = [35,53,[525,6743],64,63,[743,754,757]]
outputList = [35,53,525,6743,64,63,743,754,757]
Run Code Online (Sandbox Code Playgroud)

PS此问题的答案不适用于异构列表.在Python中展平浅层列表

python list flatten

4
推荐指数
3
解决办法
1630
查看次数

Python:创建元组列表的优雅方式?

>>> a=["a"]*4
>>> a
['a', 'a', 'a', 'a']
>>> b=range(4)
>>> b
[0, 1, 2, 3]
>>> c = [range(4,8), range(9,13), range(14,18), range(19,23)]
>>> c
[[4, 5, 6, 7], [9, 10, 11, 12], [14, 15, 16, 17], [19, 20, 21, 22]]
>>>
>>> result = map(lambda x,y:[x,y],a,b)
>>> map(lambda x,y:x.extend(y),result,c)
>>> result = map(tuple, result)
>>> result     # desired output: 
[('a', 0, 4, 5, 6, 7), ('a', 1, 9, 10, 11, 12), ('a', 2, 14, 15, 16, 17), ('a', 3, …
Run Code Online (Sandbox Code Playgroud)

python

4
推荐指数
1
解决办法
6283
查看次数

迭代列表中不同长度的列表

我有以下列表:

a = [[1, [0], [0], [1, [0]]], [1, [0], [0], [1, [0]]], [1, [0], [0]]]
Run Code Online (Sandbox Code Playgroud)

我想取所有整数并用它们制作一个字符串:

b = '1001010010100'
Run Code Online (Sandbox Code Playgroud)

有什么方法可以做到这一点吗?先感谢您!

python list

4
推荐指数
2
解决办法
195
查看次数

如何解压深嵌套的可迭代结构

比方说,我有一个包含许多子元素的结构,其中一些子结构是结构:

v = [1, 2, 3, [4, (5, 6)]]
Run Code Online (Sandbox Code Playgroud)

如何将这些解包为一系列仅包含结构内容而不包含结构的名称?

尝试使用星号表达式a, b, c, d, e, f = v引发一段ValueError时间会为名称分配结构.我怎样才能解压缩它们以获得:

print(a, b, c, d, e, f)
Run Code Online (Sandbox Code Playgroud)

打印:

1 2 3 4 5 6
Run Code Online (Sandbox Code Playgroud)

python iterable python-3.x iterable-unpacking

4
推荐指数
1
解决办法
344
查看次数

如何在Python中展平嵌套元组列表?

我有一个看起来像这样的元组列表:

[('a', 'b'), ('c', 'd'), (('e', 'f'), ('h', 'i'))]
Run Code Online (Sandbox Code Playgroud)

我想把它变成这个:

[('a', 'b'), ('c', 'd'), ('e', 'f'), ('h', 'i')]
Run Code Online (Sandbox Code Playgroud)

最恐怖的方式是什么?

python list-comprehension flatten

4
推荐指数
2
解决办法
1244
查看次数

将函数应用于任意嵌套列表的每一项

我有一个嵌套列表a = [1, 2, [3, 4], 5],我想应用一个函数来将每个数字提高到 2 的幂。结果将是这样的:

a = [1, 4, [9, 16], 25]
Run Code Online (Sandbox Code Playgroud)

我试过了,a = [list(map(lambda x : x * x, x)) for x in a]但它给出了这个错误

a = [1, 4, [9, 16], 25]
Run Code Online (Sandbox Code Playgroud)

我们如何解决这个问题?如何在嵌套列表上应用函数?

python

4
推荐指数
1
解决办法
1789
查看次数