相关疑难解决方法(0)

有没有一种简单的方法可以按值删除列表元素?

a = [1, 2, 3, 4]
b = a.index(6)

del a[b]
print a
Run Code Online (Sandbox Code Playgroud)

以上显示以下错误:

Traceback (most recent call last):
  File "D:\zjm_code\a.py", line 6, in <module>
    b = a.index(6)
ValueError: list.index(x): x not in list
Run Code Online (Sandbox Code Playgroud)

所以我必须这样做:

a = [1, 2, 3, 4]

try:
    b = a.index(6)
    del a[b]
except:
    pass

print a
Run Code Online (Sandbox Code Playgroud)

但有没有更简单的方法来做到这一点?

python list

888
推荐指数
14
解决办法
162万
查看次数

从列表中删除项目时出现奇怪的结果

我有这段代码:

numbers = range(1, 50)

for i in numbers:
    if i < 20:
        numbers.remove(i)

print(numbers)
Run Code Online (Sandbox Code Playgroud)

但我得到的结果是:

[2,4,6,8,10,12,14,16,18,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35 ,36,37,38,39,40,41,42,43,44,45,46,47,48,49]

当然我希望结果中没有出现20以下的数字,我假设我在删除时做错了.

python loops list

32
推荐指数
3
解决办法
5844
查看次数

从列表中随机选择值但具有字符长度限制

我有两个字符串列表,如下所示:

test1 = ["abc", "abcdef", "abcedfhi"]

test2 = ["The", "silver", "proposes", "the", "blushing", "number", "burst", "explores", "the", "fast", "iron", "impossible"]
Run Code Online (Sandbox Code Playgroud)

第二个列表更长,所以我想通过随机抽样将其下采样到第一个列表的长度.

def downsample(data):
    min_len = min(len(x) for x in data)
    return [random.sample(x, min_len) for x in data]

downsample([list1, list2])
Run Code Online (Sandbox Code Playgroud)

但是,我想添加一个限制,即从第二个列表中选择的单词必须与第一个列表的长度分布相匹配.因此,对于随机选择的第一个单词,它必须与较短列表的第一个单词具有相同的长度.这里的问题是也不允许替换.

如何随机选择n(短列表的长度)元素,test2从中匹配字符长度分布test1?谢谢,杰克

python

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

如何使用Python随机丢弃集合中的多个元素?

例如,我有这个Set对象:

a = {0,1,2,3,4,5}

如何从这个集合中随机删除固定数量的元素?

python set data-structures

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

标签 统计

python ×4

list ×2

data-structures ×1

loops ×1

set ×1