在Python 2.7.6中拾取列表中的元素

在Python 2.7.6中拾取列表中的元素,python,list,Python,List,在Python2.7.6中,一个列表如下所示。以何种方式提取以“4”开头、长度为4的项目,即下面的4646和4648 aaa = [2013, 2014, 2002, 4646, 4648, 20, 456, 5623, 'abc'] 我只能通过以下方式计算出选择4个长度: results = [] for number in aaa: if len(str(number)) == 4: results.append(number) print results 谢谢 这

在Python2.7.6中,一个列表如下所示。以何种方式提取以“4”开头、长度为4的项目,即下面的4646和4648

aaa = [2013, 2014, 2002, 4646, 4648, 20, 456, 5623, 'abc']
我只能通过以下方式计算出选择4个长度:

results = []

for number in aaa:
  if len(str(number)) == 4:
      results.append(number)

print results
谢谢



这些都是很好的答案。但我是新手,所以选择最简单的一个。:)

我想知道这是你想要的

results = []

for number in aaa:
  if str(number)[0] == '4' and len(str(number)) == 4:
      results.append(number)

print results
使用过滤器:

filtered = list(filter(lambda x: len(str(x)) == 4 and str(x)[0] == '4', aaa))
使用列表理解:

filtered = [ x for x in aaa if len(str(x)) == 4 and str(x)[0] == '4' ]
使用生成器表达式:

ge = ( x for x in aaa if len(str(x)) == 4 and str(x)[0] == '4' )
filtered = list(ge)
现在已过滤为:
[464648]
带整数:

result = [x for x in aaa if 4000 <= x < 5000]
只是:


希望这能给你带来想要的结果

aaa = [2013, 2014, 2002, 4646, 4648, 20, 456, 5623, 'abc']
results = []
for number in aaa:
    if len(str(number)) == 4 and str(number).split()[0][0] == '4':
        results.append(number)
print results 

Output: [4646, 4648]

请尝试以下代码行:

aaa = [2013, 2014, 2002, 4646, 4648, 20, 456, 5623, 'abc']

results = []

for number in aaa:
  if len(str(number)) == 4 and str(number)[0] == '4':
  results.append(number)

print results
我仅更改了您的if声明,如:

如果len(str(number))==4和str(number)[0]==4':


除非您可能也有以4开头的字符串,否则为什么不在
范围(40005000)
上进行筛选呢?
aaa = [2013, 2014, 2002, 4646, 4648, 20, 456, 5623, 'abc']
results = []
for number in aaa:
    if len(str(number)) == 4 and str(number).split()[0][0] == '4':
        results.append(number)
print results 

Output: [4646, 4648]
aaa = [2013, 2014, 2002, 4646, 4648, 20, 456, 5623, 'abc']

results = []

for number in aaa:
  if len(str(number)) == 4 and str(number)[0] == '4':
  results.append(number)

print results