我需要从给定列表中选择一些元素,知道它们的索引.假设我想创建一个新列表,其中包含索引为1,2,5的元素,来自给定列表[-2,1,5,3,8,5,6].我做的是:
a = [-2,1,5,3,8,5,6]
b = [1,2,5]
c = [ a[i] for i in b]
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法呢?像c = a [b]之类的东西?
当我从一个整数(例如1-2.0)中减去一个浮点数时,Python会进行隐式类型转换(我认为).但是当我使用魔术方法调用我认为是相同的操作时__sub__,它突然不再存在了.
我在这里错过了什么?当我为自己的类重载运算符时,除了明确地将输入转换为我需要的任何类型之外,还有其他方法吗?
a=1
a.__sub__(2.)
# returns NotImplemented
a.__rsub__(2.)
# returns NotImplemented
# yet, of course:
a-2.
# returns -1.0
Run Code Online (Sandbox Code Playgroud) 这与一些其他问题(从Python列表或元组明确地选择项目,抓住在Python列表的具体指标),但我希望做相反的:
指定要排除的索引列表/元组的干净方法是什么,而不是选择?我正在考虑类似于R或MATLAB的东西,您可以在其中指定要排除的索引,例如:
vector1 <- c('a', 'b', 'c', 'd')
vector2 <- vector1[-1] # ['b', 'c', 'd']
vector3 <- vector1[c(-1, -2)] # ['c', 'd']
Run Code Online (Sandbox Code Playgroud)
有没有一种很好的方法可以在Python中完成同样的事情?道歉,如果这是一个骗局,我不确定究竟要搜索什么.
我用这个把头撞到了墙上:
基本上我想要的是从这个元组列表中删除""项:
[('650', '724', '6354', '', '', ''), ('', '', '', '650', '723', '4539')]
Run Code Online (Sandbox Code Playgroud)
并获得以下新列表:
[('650', '724', '6354'), ('650', '723', '4539')]
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
有没有len(someObj)不调用someObj __len__函数的情况?
我最近用(成功的)努力将前者替换为后者以加速某些代码.我想确保在某些地方len(someObj)与someObj不同的边缘情况.__len__().
有没有办法获取列表的特定索引,就像我在NumPy中可以做的那样?
sample = ['a','b','c','d','e','f']
print sample[0,3,5]
>>>['a','d','f']
Run Code Online (Sandbox Code Playgroud)
我试过谷歌搜索这个,但我找不到一个好方法来说出导致相关结果的问题......
我在 python 中有一个列表,我想从中获取一组索引并将其保存为原始列表的子集:
templist = [[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]]
Run Code Online (Sandbox Code Playgroud)
我想要这个:
sublist=[[1, 4, 7, 16, 19,20]]
Run Code Online (Sandbox Code Playgroud)
举个例子。
我无法提前知道列表元素的内容是什么。我所拥有的只是始终相同的索引。
有没有单行方式来做到这一点?