如何从列表中提取子列表,元组和数字?

时间:2019-04-11 07:17:21

标签: python python-3.x python-2.7

我有一个列表( CustomerID ),其中包含列表,数字,元组,我需要执行以下任务:

a。提取子列表[1,2],[2,3],[4,6],[6,9],元组(1,2,3)(76,5,3)和数字并插入单独的列表中。 b。 List和Tuple中的访问元素,例如:[1,2] elemt0,elemt1

CustomerID = [[1,2],[2,3],[4,6],[6,9],3,7,2,(1,2,3),(76,5,3)]

请帮助我。

我尝试了以下代码,但无法访问元素,并说新列表(lstEle)不是列表类型。

while(a <= len(lst)-2):
    lstEle.append(lst[a])
    a +=1

3 个答案:

答案 0 :(得分:2)

尝试此代码

$(document).ready(function(){
    $('.btn-send-reply').click(function(){
        $( "input[name*='message']" ).val("");
    })
})

答案 1 :(得分:0)

使用isinstance

例如:

CustomerID = [[1,2],[2,3],[4,6],[6,9],3,7,2,(1,2,3),(76,5,3)]

lst = []
tpl = []
dgts = []
for i in CustomerID:
    if isinstance(i, list):
        lst.append(i)
    elif isinstance(i, tuple):
        tpl.append(i)
    else:
        dgts.append(i)
print(lst)
print(tpl)
print(dgts)

输出:

[[1, 2], [2, 3], [4, 6], [6, 9]]
[(1, 2, 3), (76, 5, 3)]
[3, 7, 2]

答案 2 :(得分:0)

作为补充,我认为使用函数式编程是一个很好的例子。您可以轻松使用filter,但与reduce一起尝试也很有趣。

from functools import reduce

CustomerID = [[1,2],[2,3],[4,6],[6,9],3,7,2,(1,2,3),(76,5,3)]

reduce(
  lambda acc, cur:
     { **acc, type(cur).__name__:[cur] + acc[type(cur).__name__] },
  CustomerID,
  {'list':[], 'tuple':[], 'int':[]}
)

也许一开始它看起来有些尴尬,但是一旦您了解了reduce,您就会发现它相当优雅(至少我是这样认为的)。 而且,它可以很好地推广到新情况(例如新类型),而无需进行太多更改...

PS:我不明白您问题的最后一部分...