相关疑难解决方法(0)

如果元组包含某个元素,则从列表中删除元组

我有一个元组列表(num,id):

l = [(1000, 1), (2000, 2), (5000, 3)]
Run Code Online (Sandbox Code Playgroud)

每个元组的第二个元素包含标识符.假设我要删除带有id的元组,2我该怎么做?

即我想要新列表: l = [(1000,1), (5000, 3)]

我试过l.remove(2)但它不起作用.

python

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

在Python中os.walk()的奇怪行为?

这是原始代码块及其结果:

码:

if os.path.isdir(top):
    for root, dirs, files in os.walk(top, topdown = True):
        for dirname in dirs:
            print 'Dirname = ', os.path.join(root, dirname)
Run Code Online (Sandbox Code Playgroud)

结果:

Dirname = ../output/.svn
Dirname = ../output/a random folder
Dirname = ../output/a random folder - copy
Dirname = ../output/.svn\pristine
Dirname = ../output/.svn\temp
Dirname = ../output/.svn\pristine\04
Dirname = ../output/.svn\pristine\59
Dirname = ../output/a random folder\another one inside
Dirname = ../output/a random folder\another one inside - Copy
Dirname = ../output/a random folder\another one inside - Copy (2)
Run Code Online (Sandbox Code Playgroud)

现在我想忽略所有隐藏的文件夹和子文件夹.这是修改后的代码及其结果:

码:

if …
Run Code Online (Sandbox Code Playgroud)

python os.walk

0
推荐指数
1
解决办法
1746
查看次数

我试图了解为什么我似乎无法用循环删除列表中的每个索引

我不确定为什么我的列表没有删除基于第二个List索引的每个char.以下是代码:

L1 = ['e', 'i', 'l', 'n', 's', 't']
L2 = ['e', 'i', 'l', 'n', 's', 't']

for n_item in range(len(L1)):
    if L1[n_item] in L2:
     del L2[n_item]
Run Code Online (Sandbox Code Playgroud)

以下是我得到的错误:

 Traceback (most recent call last):
 File "<pyshell#241>", line 3, in <module>
 del L2[n_item]
 IndexError: list assignment index out of range
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助 ....

python list

0
推荐指数
1
解决办法
116
查看次数

Python for 循环跳过项目

所以我有这个代码:

animals = ['cat', 'dog', 'waffle', 'giraffe', 'turtle']
breakfeast_foods = ['waffle', 'pancake', 'eggs']
for index, item in enumerate(animals):
    print item
    if item in breakfeast_foods:
        animals.pop(index)
Run Code Online (Sandbox Code Playgroud)

由于某种原因,循环打印语句不会打印“长颈鹿”。我不知道为什么,是我缺少什么吗?

python python-2.7

0
推荐指数
1
解决办法
4504
查看次数

使用 isinstance 从列表中删除 false 时出现问题

所以,我正在尝试从 Python 的列表中删除非整数(非常令人兴奋的东西)。我遇到了以下代码的问题,但我似乎无法解决:

list_a = ["a", 1, 2, 3, False, [1, 2, 3]]

for item in list_a:
    if not isinstance(item, int):
        list_a.remove(item)
Run Code Online (Sandbox Code Playgroud)

我试图删除列表中的所有非 int 项目,但上面的代码不会删除 False。

我想要的是:[1, 2, 3]

我得到什么:[1, 2, 3, False]

任何帮助解决这个问题的帮助将不胜感激!

python boolean list python-3.x

0
推荐指数
1
解决办法
1522
查看次数

循环遍历列表并在循环之间将数据附加到该列表是一个好习惯吗?

a = [1,2,3,4,0]
def looping_thing():
    append_flag = True
    for i in a:
        if i == 0:
            append_flag = False
        if append_flag:
            a.append(i)
        print(i)
looping_thing()
Run Code Online (Sandbox Code Playgroud)

因此,在这段代码中,我尝试将项目移到列表的后面,以便只有在列表中遇到值“0”后才能处理它们。那么这种做法在Python中正确吗?

编辑:看来我不太清楚。我在这里所做的是......从列表中我首先要处理值0并执行一些代码块......然后移动到列表的其他值并执行相同的代码块。所以我只是为了执行代码块“0”有优先权。这里的假设是我无法对列表进行排序,并且总是有一个“0”值。我希望这是有道理的。

python

0
推荐指数
1
解决办法
521
查看次数

标签 统计

python ×6

list ×2

boolean ×1

os.walk ×1

python-2.7 ×1

python-3.x ×1