我有一个从1到n的元素列表(range(1, n + 1))
我应该如何将奇数较大的元素与偶数元素交换?
例如,如果我有一个包含[1,2,3]元素的列表,那么期望的输出将是[1,3,2],因为奇数3大于偶数2。
示例2:
if list = [1,2,3,4,5]
期望的输出将是
[1,3,2,5,4]
这里%2将与%3交换,% 4将与%5交换,但不会与%3交换,因为%3小于%4。
我有个很简单的问题让我很沮丧。我肯定我犯了一个很明显的错误,但我似乎找不到。在进行迭代之前,我希望l_old是l的副本。我有以下Python脚本。
import random
def runtest(n,steps):
l=[]
for i in range(n):
sublist=[]
for j in range(n):
sublist.append(0)
l.append(sublist)
for k in range(n-1):
i = random.randint(0,
一个非常常见的模式是遍历列表的一部分并搜索/选择/处理项目:
for item in array[start:end]:
# do something
据我所知,这将从array[start:end]复制项目创建一个新列表,然后遍历它,然后垃圾收集临时列表。这看起来像是在浪费CPU的使用。
使用解决了这个问题。
问:为什么这不多用,教的像教的危险可变的默认函数参数,等等?
更新:
正如注释中指出的那样,"itertools.islice是用于迭代的,而不是列表。在到达第n个元素之前,它必须迭代很多次“。
我想islice不是一个很好的例子,但是创建一个临时列表只是为了遍历它是一个
我正在创建一个列表的多个片[-WINDOW-i:-i],其中i在32和0之间。
vals = []
for i in range(32, -1, -1):
vals.append(other_list[-WINDOW-i:-i])
当i == 0时,这将返回长度为0的片段:
other_list[-WINDOW-0:0]
我不想为了解决这个问题而这么做:
vals = []
for i in range(32, -1, -1):
if i == 0:
vals.append(other_list[-WINDOW:])
else:
vals
我有一个嵌套列表,我想做一个函数来将时间(特定格式为"XX:XX")转换为字符串"time“。我很好奇为什么我的第一个例子可以工作,而我的第二个例子不行。为什么我必须克隆每一列才能保存列表比较的结果?列表是可变的,所以我不应该只保存行的结果吗?
不起作用
def timeConvert2(schedule):
for eachClass in schedule:
eachClass = ["time" if x[2] == ':' else x for x in eachClass]
return
我还在学习Tensorflow,我正在尝试更改Darkflow中一些代码中的损失函数
网络输出一个形状为49,3,2的给定张量。我想取张量最后一部分的两个元素,并用一些代码对它们进行处理。然后,我想将数据返回。所以有点像一个地图,它可以与Tensorflow一起工作。
更多上下文-我试图更改的文件的。
所以不知道怎么做,如果我在这个问题上还不够清楚,请询问更多信息。我还在努力想清楚我到底想做什么。
e.g
S = 7
SS = S * S
C = 8
B = 3
size1 = [None, SS, C]
size2 = [None, SS, B]
# Extract the coo
我正在尝试为这个列表包含元组的列表创建dict。其目的是将所需的元组过滤到最终列表中。 到目前为止,我尝试了以下几点: dict_1 = dict()
for val,sim in result:
dict_1.setdefault(val, [])
print(result) 当我查看result并解压两个值(val,sim)时,它工作得很好。但每次它与我得到的情况不同时,可能会有多个值需要解包,然后它会给出这个错误: ValueError: too many values to unpack (expected 2). 如何让上面的循环for val,sim in resul
我有一个有趣的问题。我有一个列表列表,我希望每个列表中除了第一个元素之外的所有元素都编译为正则表达式。然后放回列表中。列表以字符串形式开始。
以下代码不起作用。它不会引发错误,只是看起来什么也做不了。我想我已经发现了问题所在。(见下文)
代码:
for i in range(len(groups)):
for j in range(len(groups[i][1:])):
groups[i][1:][j] = re.compile(groups[i][1:][j])
在我看来,问题是,虽然list[1:] = [1,2,3]可以工作,但list[1:][1] = 2不能
我想以小写打印我的输出,但是我没有得到正确的结果。这是我的代码。请帮帮我!
import csv
mags = csv.reader(open("mags.csv","rU"))
for row in mags:
print [row[index] for index in (1, 0)]
print [item.lower( ) for item in row]
我正在读关于python切片的文章,但我不能理解这一点。 clf.predict_proba(X_test)[:,1] 然后我试着用简单的列表来测试自己。 a = [2,4,6,7,7,8]
>>> a[:,1]
-----> TypeError: list indices must be integers or slices, not tuple
for x,y in words:
for z in x:
if z in stopwords:
del x[x.index(z)]
这是我的代码。单词中的数据是元组列表,其中元组如下所示:
(list of words, metadata)
我的代码的目的是删除单词列表中的所有停用词。唯一的问题是,停用词不会在事后被删除。
我到底做错了什么?我已经试过了
x.pop(x.index(z))
但这似乎没有什么不同。