创建一个列表中元素出现频率的字典(在python中)的时间复杂度是多少?
例如:我有一个列表- ls = 5,3,3,2我想创建一个字典来检查列表中每个元素的频率。这是它的代码:
freq = {}
for ele in ls:
if ele in freq:
freq[ele] += 1
else:
freq[ele] = 1
这将从列表中创建字典,但是创建字典的时间复杂度是多少?
任何关于这方面的见解都会很有帮助。谢谢。
我想测试python是否允许我运行以下代码:
listWords = []
for i in range (len(listWords)+1):
listWords.append("New word")
print ("End loop")
原因是我想创建一个程序,试图解决一个解决方案,然后添加新的项目到列表中进行测试。
为什么python在向列表中添加新项时不更新for循环范围?
有什么方法可以绕过这个使用for循环吗?(我怀疑用一个时间循环可以解决我的问题,但我只是好奇。)
谢谢
我试图使用python为列表中的每个项目创建一个单独的文本文件。
List = open('/home/user/Documents/TestList.txt').readlines()
List2 = [s + ' time' for s in List]
for item in List2 open('/home/user/Documents/%s.txt', 'w') % (item)
此代码应从目标文本文件生成列表。第二个列表是使用第一个列表中的字符串生成的(在这种情况下,将‘time’添加到末尾)。我的第三行是我遇到问题
我浏览了许多关于python时间复杂性的博客,并发布了我的疑问:
在清单理解的情况下,如何分析时间复杂性?
例如:
x = [(i,xyz_list.count(i)) for i in xyz_set]
xyz_list = [1,1,1,1,3,3,4,5,3,2,2,4,5,3]和xyz_set = set([1, 2, 3, 4, 5])
那么,复杂性是否是代码O(n*n*n)的一行,即迭代的O(n)、列表创建的O(n)、计数函数的O(n)?
我最近才开始使用Python的列表理解。我和他们在一起并不舒服。我如何通过使用列表理解来优化下面的代码?
heatmap_color = []
for r in xrange(len(heatmap)):
heatmap_color.append([])
for c in xrange(len(heatmap[r])):
heatmap_color[r].append(cmap.to_rgba(heatmap[r][c], alpha=0.5, bytes=True))
这段代码的作用是创建一个二维数组(表示彩色图像的像素值)。最后一行将热图中的每个现有灰度像
对于集合和列表,len()的复杂性是相同的O(1)。为什么处理集合需要更多的时间?
~$ python -m timeit "a=[1,2,3,4,5,6,7,8,9,10];len(a)"
10000000 loops, best of 3: 0.168 usec per loop
~$ python -m timeit "a={1,2,3,4,5,6,7,8,9,10};len(a)"
1000000 loops, best of 3: 0.375 usec per loop
它是否与特定的基准相关,比如,构建集合比列表花费更多的时间,基准也考虑到了这一点吗
当涉及到使用Python的算法设计时,我试图对时间复杂性进行思考。
我的任务是编写一个满足以下要求的函数:
必须是线性O(n)时间
必须从随机数列表中返回第n个最小数。
我在网上找到了以下例子:
def nsmallest(numbers, nth):
result = []
for i in range(nth):
result.append(min(numbers))
numbers.remove(min(numbers))
return result
据我所知,大O是一种近似,在分析它的时间复杂性时,只考虑函数的主要部分。
所以我的问题是:
在循环中调用m
下面是我所做的,我创建了两个过程,一个在函数中,另一个在python文件本身中。python文件本身的运行速度几乎慢了2倍,即使它是完全相同的。为什么?
Bellow是一个例子,它有两个过程,它们只是P元素上的循环
我有以下python文件:
from time import *
P=1000000 #range of the 2 loops
def loop(N):
for k in range(N):
continue
start=time()
loop(P)
stop1=time()
for k in range(P):
我在Python异步方面不是很有经验,尽管同步Python运行得很好。我有一个函数,它创建一个任务列表,另一个函数将与此列表中的任务一起调用:
import asyncio
async def createTasks(some_dict):
coroutines = []
# some_dict can have an arbitrary number of items
for item in some_dict:
coroutines.append(executeOneTask(item))
tasks = await asyncio.gat
我有一个视图和模板,可以创建在数据库中搜索对象的查询。我也有基于不同查询集创建用户名列表的列表。我传递了搜索到的queryset和两个待处理的列表和好友。然后,我检查搜索查询中的用户名是否位于列表中。如果它们在列表中,它将根据它所在的列表显示不同的消息。如果它不在任何列表中,它将显示不同的消息。
错误+跟踪:
AttributeError at /search/
'Friend' object has no attribute 'META'
Request Method: POST
Request URL: http://127.0.0.1:8000/se
我是python和编码的新手,我在写这个脚本时想要在两个非常长的列表中获得交叉点(匹配项),每个列表超过200000个项。我使用了两个for循环,如下所示:
for x in list1:
for y in list2:
print(y)
但它花了一个多小时的运行时间才得到想要的结果。我有了一个想法,将两个列表转换成集合,然后使用交集操作数&在它们上,它工作得很好,运行时间减少到只有3秒。
我的问题是:这怎么可能?这些操作数是如何工作得这么快的?难道它们不需要遍历两个集合中的所有项吗?
下面的Python代码创建了n个非负整数的(n初始化)列表,每个非负整数最多为n-1:
a = [0] * n
我假设由于初始化,指令需要O(n)时间。Python中是否有一种方法可以在O(1)时间内获得n个整数的列表?我不在乎列表是否初始化。我只希望时间复杂度是O(1)。我还希望列表是可变的,并支持I条目的O(1)-time访问和更新。这可以很容易地通过malloc在C语言中实现。Python怎么样?
我正在创建一个函数,询问用户他们想报告多少天的睡眠,然后根据他们对一周中的一天和睡眠时间的回答。该函数必须返回一个列表,列出一周中的天数和用户报告睡眠的小时数。下面是我想从python获得的欲望输出的图片。
到目前为止,我创建了一个基本代码,它询问用户问题的内容,但是我似乎很难在want循环中继续根据用户想报告的问题来问用户问题。下面是我到目前为止创建的代码。
def healthy():
days=int(input("How many days do you want to report?:"))
day=input("Day of the
如何使用jira-python库从工作日志中获取处理问题的时间?
使用jirashell,我看到这个问题具有属性issue.fields.worklog,但是当我试图在我的python代码中访问这个属性时,我得到了错误:AttributeError: type object 'PropertyHolder' has no attribute 'worklog'。
如果我在python代码中创建jira客户端并执行jira_client.worklogs(ticket.key),它将返回一个工作日志及其If的列表,但我不知道该如何处理。我在文档中看到了一个包含问题
问题陈述:
给定两个字符串的列表A和正则表达式的B(它们也是字符串)。
对于列表B中的每个正则表达式,请查找列表A中的所有匹配字符串。
列表A <= 10^6 (N)的长度
字符串B <= 100 (M)的长度
字符串长度,regex <= 30 (K)
假设regex匹配和字符串比较需要O(K)时间,regex可以包含任何python支持的操作。
我的算法:
for regex in B:
for s in A:
if regex.match(s):
mapping[regex].add(s)
这需要O(N*M*K)的时
python 3.6
你好,我试图用for循环迭代一个列表,在这个列表中,只要条件确定,我就必须重新启动循环。在C中,我会这样做:
for(i = 0; i < 10; i++){ if(list[i] == something) i = 0; }
我就是想这么做:
for x in listPrimes:
if((num % x) == 0):
num /= x # divide by the prime
factorials.append(x)
x = 2 # reset to the first pr
我的代码在python3中使用python3中的递归调用,它运行得非常好。现在的问题是,这是从在中引入的,我需要它在中工作。我读了几篇文章,但没有一篇足够详细或简单。
很少提及条款:
其他人也不多。
我重新创建了一个小示例代码(它接受一个多级列表并返回一个扁平列表),与我的需求相比,这是一个非常简约的。
#python 3
def foo(obj):
for ele in obj:
if isinstance(ele, list):
yield from foo(ele)
else:
y
我试图从一个简短的算法中理解时间和空间复杂性之间的区别。此代码接受一个列表/数组,并返回出现奇数次的单个数字。在Python中:
def foo(array_of_ints):
hash_table = dict()
for i in array_of_ints:
hash_table[i] = hash_table.setdefault(i, 0) + 1
for key, value in hash_table.items():
if value%2 != 0:
return key
有两个for循环对数组的长
我对python还是个新手...所以我已经为一个问题纠结了一段时间,在做了大量的研究之后,我没有找到解决方案,所以我决定在这里问:)。
所以解释我的问题的代码是:
test = []
solutions = []
i = 0
while i < 100:
for i in range(0, 64):
pos = random.randrange(0, 64)
test.append(pos)
solutions.append(test)
test.clear()
i += 1
因此,我想在每次循环进行时将一个表的副本添加到
我正在学习python并学习google代码课程。在list2.py示例中,他们要求我们编写一个函数:
给定两个按递增顺序排序的列表,创建并返回按排序顺序排列的所有元素的合并列表。您可以修改传入的列表。理想情况下,解决方案应该在“线性”时间内工作,对两个列表进行一次传递。
他们给出了密码:
def linear_merge(list1, list2):
result = []
#Look at the two lists so long as both are non-empty.
#Take whichever element [0] is smaller.
whil
这里是Python/Pandas初学者。我有一个名字列表,每个名字都代表我的计算机上的一个csv文件。我想为每个csv文件创建一个单独的熊猫数据文件,并使用相同的名称作为数据。通过为列表中的每个名称创建单独的代码行,以及随着列表随时间的变化手动添加/删除这些代码行,我可以以一种非常低效的方式做到这一点,比如,当我有3个名称Mark、Frank和Peter时:
path = 'C:\\Users\\Me\\Desktop\\Names'
Mark = pd.read_csv(path+"Mark.csv")
Frank = pd.read_csv(path+
我有一个初学者Python的问题。我想知道是否有可能从列表中获取for循环的结果,然后再将其转换为列表。我有这样的代码。
for a in mylist:
result = q.myfunction(a)
print q, a
我希望这个列表的结果可以用来在我的数据库中创建一个表。我在Windows 7上使用Python2.7,我查看了Python关于for循环的文档,查看了有关堆栈交换的问题,我仍然感到困惑。
对于一个菜鸟来说,我可能承担的项目太大了,但我正试图为KickassTorrents托管一个非官方的API。目前,它们提供的整个数据库的文本转储通常在650 of左右。
现在,我正在使用Python读取文本文件,并使用Django的ORM将其插入数据库:
with open('hourlydump.txt', 'r') as f:
for line in f:
sections = line.split('|')
Torrent.objects.create(...)
使用它们的每
我试着制作一个脚本来组织我已经拥有的一对列表,并使用其他程序进行处理,但是我现在有点卡住了。
我希望从Txt中的列表中处理每一行,首先创建一个文件夹到列表中的每一行,然后由于我有不同的脚本而进行处理。
但我的问题是,我给脚本的列表就像3-4元素工作得很好,并创建了自己的目录,但是如果我将一个包含+1000行的列表放在其中,那么我的脚本只通过脚本处理几个元素。
编辑:这个过程类似于30-35个脚本,不同语言的python,bash,python和golang。
有什么建议吗?
cat $STORES+NEW.txt | while read NEWSTORES
do
cd $STORE