对于一维列表,项目的索引如下所示:
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
我有一个列表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?
由于我的名单很大,我还需要尽可能高效地完成这项工作?任何帮助将不胜感激,谢谢
我打印时,下面的代码给出了c和d的不同值
Run Code Online (Sandbox Code Playgroud)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)
我在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语句来执行此操作.随着更多因素的增加,嵌套变得混乱.根据某些标准,是否有一种优雅的过滤方式?
我有一堂课,我想做类似以下的事情:
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)
我不知道如何使用该函数设置类变量名称
我有以下类,我想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) 我有一个表格列表清单:
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)
不使用循环的最佳方法是什么?
我有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的组合.有没有更有效的方法来做到这一点并加快我的代码?
我正在将一些VBA代码转换为Python,我遇到了以下循环,其中步骤为-1
For k = i - 1 To 1 Step -1
Run Code Online (Sandbox Code Playgroud)
什么是Python中的-1步?