小编Man*_*eep的帖子

在多维列表上使用index()

对于一维列表,项目的索引如下所示:

 a_list = ['a', 'b', 'new', 'mpilgrim', 'new']
 a_list.index('mpilgrim')
Run Code Online (Sandbox Code Playgroud)

2或n维列表的等价物是什么?

编辑:我添加了一个例子来澄清:如果我有一个3维列表如下

b_list = [
          [1,2],
          [3,4],
          [5,6],
          [7,8]
         ],
         [
          [5,2],
          [3,7],
          [6,6],
          [7,9]
         ]
Run Code Online (Sandbox Code Playgroud)

现在假设我想在此列表中标识某个值.如果我知道第一和第二个维度的索引但不知道我想要的值的第零个索引,我该如何找到第零个索引?

会是这样的:

  target_value = 7
  b_list[0].index(target_value)
Run Code Online (Sandbox Code Playgroud)

输出为整数:0

python

7
推荐指数
3
解决办法
5万
查看次数

Python - 有效地查找列表中的元素

我有一个列表list_a,其中包含浮点数:

list_a = [[[ 0 for i in range(40)] for j in range(1000)]for k in range(47)]
Run Code Online (Sandbox Code Playgroud)

我有一个排序版本:

list_a_sorted = list_a
list_a_sorted[0].sort()
Run Code Online (Sandbox Code Playgroud)

因此list_a_sorted被排序并包含list_a的值,从最低的第一个开始.我们假设它如下:

[2.3,3.1.........9]
Run Code Online (Sandbox Code Playgroud)

所以2.3是最低值,但我怎么能知道这是list_a中的第8个元素还是15或n?

由于我的名单很大,我还需要尽可能高效地完成这项工作?任何帮助将不胜感激,谢谢

python

5
推荐指数
2
解决办法
2201
查看次数

当我将这两个值分配给另一个时,为什么这两个值不同?

我打印时,下面的代码给出了c和d的不同值

import csv

datafile = open('test1.csv', 'r')
datareader = csv.reader(datafile)
c = []
for row in datareader:
    c.append(row)

d = [[0]*2]*2
i=0

while i < 2:

    j=0

    while j < 2:

        d[i][j] = float(c[i][j])

        j=j+1
    i=i+1

print(c)
print(d)
Run Code Online (Sandbox Code Playgroud)

python

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

是否有一个优雅的替代方法来过滤这些结果而不使用大量的if语句?

我在python中执行一些生成1000个结果的模拟.每个结果都有多个属性,如风险,成本等

我现在想要确定符合某些标准的结果,例如:

Factor 1, cost should be between 10 and 20
Factor 2, risk should be between 0 and 5
Factor 3...
Factor 4...
....
Run Code Online (Sandbox Code Playgroud)

目前我正在使用一系列嵌套的if语句来执行此操作.随着更多因素的增加,嵌套变得混乱.根据某些标准,是否有一种优雅的过滤方式?

python filtering

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

使用函数在类中设置变量的名称?

我有一堂课,我想做类似以下的事情:

class my_class:

    def my_func(self, var_name):

        self.var_name = 5


a = my_class()
a.my_func('yes')
print(a.yes)
Run Code Online (Sandbox Code Playgroud)

我不知道如何使用该函数设置类变量名称

python oop

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

在__init__中使用类方法

我有以下类,我想location_change__init__该类中使用该方法.有没有办法做到这一点?我在下面使用的示例是一个简化,但我需要做的是使用类方法来转换一些构造函数数据.这可以在python中完成吗?

class dummy:

    def __init__(self):

        self.location = 'USA'
        print(self.location)

        location_change()
        print(self.location)

    def location_change():

        self.location = 'UK'


first_dummy = dummy()
Run Code Online (Sandbox Code Playgroud)

python oop class

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

求和2D列表列,其中一些元素是字符串

我有一个表格列表清单:

my_list=[[1,2,'A'],[4,5,'B'],[7,8,'C']]
Run Code Online (Sandbox Code Playgroud)

我想总结每个列表的第一个元素(1 + 4 + 7)来得到一个总数.我尝试了以下无法正常工作,因为列表中的某些元素是字符串:

new_list = list(zip(*my_list))
print (sum(new_list[0])) 
Run Code Online (Sandbox Code Playgroud)

不使用循环的最佳方法是什么?

python list

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

是否有更有效的方法以10%的增量查找10个项目的所有组合?

我有10种货币我正在分析,我想以10%的增量找到这些货币的所有可能组合.例如:

10% of A, 20% of B...etc 
Run Code Online (Sandbox Code Playgroud)

约束如下:

总数必须达到100%每种货币的数量可以在0%到100%之间,因此100%A的组合是有效的

目前我的代码看起来像这样:

for element in itertools.product(*curr_arr):
    if round(sum(element),1)==1:
        comb_input.append(list(element))
Run Code Online (Sandbox Code Playgroud)

其中curr_arr本质上是一个数组,如下所示:

  [0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0]
Run Code Online (Sandbox Code Playgroud)

这种方法非常慢,因为它查看所有组合,然后提取总和为1的组合.有没有更有效的方法来做到这一点并加快我的代码?

python combinations loops

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

你可以在Python中使用带有-1步的for循环,就像在VBA中一样吗?

我正在将一些VBA代码转换为Python,我遇到了以下循环,其中步骤为-1

For k = i - 1 To 1 Step -1
Run Code Online (Sandbox Code Playgroud)

什么是Python中的-1步?

python for-loop

-2
推荐指数
1
解决办法
325
查看次数

标签 统计

python ×9

oop ×2

class ×1

combinations ×1

filtering ×1

for-loop ×1

list ×1

loops ×1