我有一个任意长度的列表,我需要将它分成相同大小的块并对其进行操作.有一些明显的方法可以做到这一点,比如保留一个计数器和两个列表,当第二个列表填满时,将它添加到第一个列表并清空下一轮数据的第二个列表,但这可能非常昂贵.
我想知道是否有人对任何长度的列表都有一个很好的解决方案,例如使用生成器.
我一直在寻找有用的东西,itertools但我找不到任何明显有用的东西.但是可能会错过它.
我想在列表中标识连续数字组,以便:
myfunc([2, 3, 4, 5, 12, 13, 14, 15, 16, 17, 20])
Run Code Online (Sandbox Code Playgroud)
返回:
[(2,5), (12,17), 20]
Run Code Online (Sandbox Code Playgroud)
并且想知道最好的方法是什么(特别是如果在Python中有内置的东西).
编辑:注意我原本忘了提到个别数字应该作为单独的数字返回,而不是范围.
假设我有一个这样的列表:
list = [["A",0], ["B",1], ["C",0], ["D",2], ["E",2]]
Run Code Online (Sandbox Code Playgroud)
我怎样才能最优雅地将其分组以在Python中获取此列表输出:
list = [["A", "C"], ["B"], ["D", "E"]]
Run Code Online (Sandbox Code Playgroud)
所以这些值按secound值分组但订单仍然保留......
python中是否存在可以将增加的整数列表转换为范围列表的内容
例如,给定{0,1,2,3,4,7,8,9,11}我想得到{{0,4},{7,9},{11,11}}.
我可以写一个程序来做这个,但想知道python中是否有内置函数
我正在尝试组合列表中彼此相邻的相似字符.我想知道是否有Python方法可以做到这一点?这是一个例子:
test = 'hello###_world###test#test123##'
splitter = re.split("(#)", test)
splitter = filter(None, splitter)
Run Code Online (Sandbox Code Playgroud)
这在splitter变量中返回:
['hello', '#', '#', '#', '_world', '#', '#', '#', 'test', '#', 'test123', '#', '#']
Run Code Online (Sandbox Code Playgroud)
我正在尝试组合哈希,所以列表变成了这样:
['hello', '###', '_world', '###', 'test', '#', 'test123', '##']
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助!
我有一个包含超过100,000个值的列表.
我需要根据特定的bin宽度(例如0.1)将列表分成多个较小的列表.任何人都可以帮我如何写一个python程序来做到这一点?
我的清单看起来像这样
-0.234
-0.04325
-0.43134
-0.315
-0.6322
-0.245
-0.5325
-0.6341
-0.5214
-0.531
-0.124
-0.0252
Run Code Online (Sandbox Code Playgroud)
我希望有这样的输出
list1 = [-0.04325, -0.0252]
list2 = [-0.124]
list3 = [-0.234, -0.245 ]
list4 = [-0.315]
list5 = [-0.43134]
list6 = [-0.5325, -0.5214, -0.531]
list7 = [-0.6322, -0.6341]
Run Code Online (Sandbox Code Playgroud) 在阅读python文档时,我遇到了这个itertools.groupby()
函数.这不是很简单所以我决定在stackoverflow上查找一些信息.我从如何使用Python的itertools.groupby()中找到了一些东西?.
在这里和文档中似乎没有关于它的信息,所以我决定发表我的意见以征求意见.
谢谢
这是一个部分算法逻辑问题(如何做),部分实现问题(如何做到最好!).我正在和Django合作,所以我想我会与之分享.
在Python中,值得一提的是,问题与how-do-i-use-pythons-itertoolsgroupby有些相关.
假设您有两个Django Model派生类:
from django.db import models
class Car(models.Model):
mods = models.ManyToManyField(Representative)
Run Code Online (Sandbox Code Playgroud)
和
from django.db import models
class Mods(models.Model):
...
Run Code Online (Sandbox Code Playgroud)
如何获得汽车列表,按汽车分组,使用一组共同的Mod?
即我想得到一个类似的:
Cars_by_common_mods = [
{ mods: { 'a' }, cars: { 'W1', 'W2' } },
{ mods: { 'a', 'b' }, cars: { 'X1', 'X2', 'X3' }, },
{ mods: { 'b' }, cars: { 'Y1', 'Y2' } },
{ mods: { 'a', 'b', 'c' }, cars: { 'Z1' } },
]
Run Code Online (Sandbox Code Playgroud)
我一直在想类似的东西:
def cars_by_common_mods():
cars …Run Code Online (Sandbox Code Playgroud) 假设,我有一个NumPy整数数组,如:
[34,2,3,22,22,22,22,22,22,18,90,5,-55,-19,22,6,6,6,6,6,6,6,6,23,53,1,5,-42,82]
Run Code Online (Sandbox Code Playgroud)
我想找到数组的开始和结束索引,其中一个值超过x次(比如说5次)重复.所以在上面的例子中,它是值22和6.重复22的起始索引是3,结束索引是8.相同的重复6. Python中是否有一个特殊工具有用?否则,我会遍历索引的数组索引,并将实际值与之前的值进行比较.
问候.
在调试Python程序时,我最近发现Python itertools#groupby()函数需要对输入集合进行排序,因为它只对序列中出现的相同元素进行分组:
一般来说,可迭代对象需要已经在相同的键函数上进行排序。
groupby()的操作类似于Unix中的uniq过滤器
在这两种情况下,uniq以及 Python 的情况groupby()下,我想知道在不排序的情况下应用这些的用例可能是什么。
显然,排序的成本可能很高,因此应尽可能避免。然而,如果排序在实践中显然是不可避免的,那么为什么 Python 开发人员决定不将其设为默认值呢groupby()?这似乎给该功能的用户造成了很多困惑。
我注意到这个设计决策似乎并不具有普遍性。像 Scala 这样的语言似乎在其groupBy()函数中隐式地对集合进行排序。
因此,我的问题是:哪些用例导致了在 uniq 和 Python 的 groupby() 中不隐式排序的设计决策?