Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python列表中获取项的索引和值?_Python_String_List_Floating Point - Fatal编程技术网

如何在python列表中获取项的索引和值?

如何在python列表中获取项的索引和值?,python,string,list,floating-point,Python,String,List,Floating Point,我有这样一份清单: lst = [None,None,None,'0.141675556588',None,None,None,'0.268087046988'] another_lst = [['3', 0.14], ['7', 0.26]] 我想得到任何大于0.1的数字,并将它们以及它们的列表索引放在另一个列表中。在下面的列表中: lst = [None,None,None,'0.141675556588',None,None,None,'0.268087046988'] anothe

我有这样一份清单:

lst = [None,None,None,'0.141675556588',None,None,None,'0.268087046988']
another_lst = [['3', 0.14], ['7', 0.26]]
我想得到任何大于0.1的数字,并将它们以及它们的列表索引放在另一个列表中。在下面的列表中:

lst = [None,None,None,'0.141675556588',None,None,None,'0.268087046988']
another_lst = [['3', 0.14], ['7', 0.26]]
到目前为止,我已经尝试过这段代码,但它不是很有用:

another_lst = []

for position, item in enumerate(lst):
    if float(item) > 0.1:
        another_lst += [position, item]
我需要帮助。谢谢

您可以尝试以下方法:

lst = [None,None,"string", None,'0.141675556588',None,None,"hi how are you", None,'0.268087046988']

positions = [[i, a] for i, a in enumerate(lst) if a is not None and not ''.join(a.split()).isalpha() and float(a) > 0.1]
输出:

[[4, '0.141675556588'], [9, '0.268087046988']]

您遇到的错误是因为您试图执行
float(None)
。在for循环的开始处进行检查,以过滤掉这些none:

for position, item in enumerate(a):
    if item is not None and float(item) > 0.1:
        another_lst.append([position, item])

另外,请使用另一个函数
而不是
+=
。有时后者会导致意外行为。

您必须检查
是否为
,否则将引发异常。修改条件:
if float(item)>0.1:
到:
if item和float(item)>0.1:
使用
。追加
而不是类似于
+=
。扩展
如果列表中有类似于[None',string',3'的字符串,该怎么办。那么如何进行筛选?如果列表中有一个字符串,如[None,'string','3'],该怎么办。那么我如何进行筛选?@0x1请查看我最近的编辑。最好的方法是使用
isalpha
我仍然会遇到相同的错误:
ValueError:无法将字符串转换为float
好的。我现在明白了。非常感谢@0x1很高兴帮助您!我刚刚发布了更新的最终输出。