我是python的新手,所以对于这个幼稚的问题深表歉意。我有一个listl1=[2,4,6,7,8]和另一个元组列表l2=[(4,6),(6,8),(8,10)]我想输出一个大小为l1的列表l3,它将l1的值与的第一个坐标进行比较l2如果在l1中找到第一个坐标,则存储第二个坐标,否则存储0。输出:l3=[0,6,8,0,10]我厌倦了像这样的for循环:l3=[]foriinrange(len(l1)):ifl1[i]==l2[i][0]:l3.append(l2[i][1])else:l3.append(0)但这行不通。它给出了错误IndexError:listindexoutofr
我在对元组列表进行排序时遇到困难。我想按列表中字符串的长度排序。例如:l=[(99,'bbc',121),(33,'abcd',231),(44,'zb',148),(23,'abcde',221)]如果我按元素1排序:l.sort(key=itemgetter(1),reverse=True)这将按字符串的字母顺序排序,而不是长度。我更喜欢就地排序和反向排序,最长的字符串在前。我可以使用lambda和cmp,l.sort(lambdax,y:cmp(len(x[1]),len(y[1])),reverse=True)但是是否有使用键和/或itemgetter的更优雅或pythonic
这个问题在这里已经有了答案:Nestedargumentsnotcompiling(1个回答)关闭8年前。出于某种原因,在python中,每次我尝试在函数中定义元组时,都会出现语法错误。例如,我有一个向程序添加向量的函数,它看起来像这样:defadd_vectors((angle_1,l_1),(angle_2,l_2)):x=math.sin(angle1)*l_1+math.sin(angle2)*l_2y=math.cos(angle1)*l_1+math.cos(angle2)*l_2angle=0.5*math.pi-math.atan2(y,x)length=math.hy
我正在尝试基于另一个列表创建一个列表,其中相同的值连续重复3次。目前,我正在使用:>>>my_list=[1,2]>>>three_times=[]>>>foriinrange(len(my_list)):...forjinrange(3):...three_times.append(my_list[i])...>>>printthree_times[1,1,1,2,2,2]但我想用更Pythonic的方式来做,例如:>>>my_list=[1,2]>>>three_times=[]>>>three_times=[(value,)*3forvalueinmy_list]>>>print
如果我有nums_and_words=[(1,'one'),(2,'two'),(3,'three')]想要nums=[1,2,3]words=['one','two','three']我如何以Pythonic的方式做到这一点?我花了一分钟才意识到为什么以下内容不起作用nums,words=[(el[0],el[1])forelinnums_and_words]我很好奇是否有人可以提供类似的方式来实现我正在寻找的结果。 最佳答案 使用zip,然后解压:nums_and_words=[(1,'one'),(2,'two'),(3,'t
我是大学计算机科学专业的学生,正在为我的CalcIII类(class)开发一个涉及奇异值分解的编程项目。这个想法基本上是将mxn维度的图像转换为mxn矩阵,其中每个元素是一个元组,表示点(m,n)处像素的颜色channel(r,g,b)。我正在使用Python,因为它是迄今为止我真正(很好)学过的唯一一门语言。据我所知,Python通常不喜欢将元组作为数组的元素。我自己做了一些研究,找到了一个解决方法,即按如下方式预分配数组:defimage_to_array():#convertsanimagetoanarrayaPic=loadPicture("zorak_color.gif"
我有一个稀疏矩阵的行信息Python列表。每行都表示为(列,值)元组的列表。称它为alist:alist=[[(1,10),(3,-3)],[(2,12)]]我怎样才能从这个列表列表中有效地构造一个scipy稀疏矩阵,从而产生这样的矩阵:0100-300120显而易见的方法是创建一个scipy.sparse.lil_matrix,它在内部具有这种“列表列表”结构。但是来自scipy.sparse.lil_matrix—SciPyv0.19.0ReferenceGuide我只看到三种构造它们的方法:从密集数组开始从另一个稀疏数组开始只是构建一个空数组所以获取新数据的唯一方法是要么用其他一
关闭。这个问题是opinion-based.它目前不接受答案。想改善这个问题吗?更新问题,以便可以通过editingthispost用事实和引文回答问题.3年前关闭。Improvethisquestion我正在用python开发一个可以读写文件的文件类,其中包含一个xyz坐标列表。在我的程序中,我已经有一个Coord3D类来保存xyz坐标。我的问题与getCoordinate(index)方法的设计有关。我应该返回一个浮点数元组,还是一个Coord3D对象?在第一种情况下,我得到的耦合非常低,但随后我可能不得不使用获得的值实例化Coord3D对象,尽管在文件类之外。在第二种情况下,我将
更新元组列表中值的最佳方法是什么?我目前在下面的代码中这样做,但我想有一种更简洁明了的方法。>>>foo=[('a','hello'),('b','world')]>>>bar=dict(foo)>>>bar['b']='friend'>>>foo=bar.items()>>>foo[('a','hello'),('b','friend')]编辑:使用元组列表的原因在我原来的帖子中并不清楚。目标是在错误处理期间更新wsgi应用程序的一些header值,即元组列表。提前致谢。 最佳答案 您的数据结构(元组列表)最好称为关联列表。正如其
我有一个元组foo,其中包含一些我不关心的和我关心的。foo=(something_i_dont_need,something_i_need)这样用更正确吗_,x=foo或x=foo[1]如果foo的长度不是二,我唯一能想到的就是不同的行为。我想这是相当特定于案例的,但其中之一是事实上的pythonic做事方式吗? 最佳答案 十多年来,我一直在使用_。它更具可读性,尤其是在提取多个值时:_,_,name,_,_,city,_=whatever即使只有一个变量,如果人类读者想要真正理解代码,另一种方式也会迫使他们数数,而且他们的眼睛更