小编Ash*_*ary的帖子

Python:最快的遍历二维数组的方法

我有一个2-D浮点数组,并希望计算每列中阈值大于阈值的字段数,并将其存储在1-D数组中.当前我使用以下代码,但需要很长时间(数组大小:27000乘27000).任何人都可以告诉我一个更快的方法.

以下是我的代码:

for Column in range(len(CorrelationData)):
BestMatchCount[0][Column] = sum(i >= Threshold for i in CorrelationData[:][Column])
Run Code Online (Sandbox Code Playgroud)

python arrays optimization performance numpy

0
推荐指数
1
解决办法
1413
查看次数

计算没有元音的字符串长度

我有一个字符串: -

a = 'abcderui'
Run Code Online (Sandbox Code Playgroud)

我想计算字符串的长度a减去元音.实现这一目标的最快的是什么?

目前我在做: -

a = list(a)
for i in a:
    if i in vowels:
        continue
    count +=1
Run Code Online (Sandbox Code Playgroud)

python string

0
推荐指数
1
解决办法
70
查看次数

热点通过某个键收集列表项目的值?

假设我们有一个dicts列表:

[
  {
    'k1': 'v11',
    'k2': 'v21',
    'k3': 'v31'
  },
  {
    'k1': 'v12',
    'k2': 'v22',
    'k3': 'v32'
  },
  {
    'k1': 'v13',
    'k2': 'v23',
    'k3': 'v33'
  }
]
Run Code Online (Sandbox Code Playgroud)

我想得到所有值的关键是k1:[v11, v12, v13],但不使用循环.

我试着使用map函数和functools.partial:

map(functools.partial(dict.get(), 'k1'), the_list)
Run Code Online (Sandbox Code Playgroud)

但这是错误的,因为我只能使用绑定第一个参数functools.partial.

那么有没有pythonic方法来做到这一点?

python dictionary functional-programming list

0
推荐指数
1
解决办法
323
查看次数

如何替换字符串中的字符串

我有一个文本字符串.我需要解码文本字符串,即用相应的字符串替换字符串中的每个字符,然后阅读消息.我该如何实现这一目标?

例如:

g fmnc wms bgblr rpylqjyrc gr zw fylb.rfyrq ufyr amknsrcpq ypc dmp.bmgle gr gl zw fylb gq glcddgagclr ylb rfyr'q ufw rfgq rcvr gq qm jmle.sqgle qrpgle.kyicrpylq()gq pcamkkclbcb.lmu ynnjw ml rfc spj.

被编码.我需要用c代替a,用d代替b等.我如何在Python中执行此操作?

我更换时出现问题.当我替换所有,我替换被替换的字符,这不是我想要的.我想一次替换一个字符并解码消息.

python string

0
推荐指数
1
解决办法
5936
查看次数

如何在python中拆分多个分隔符的字符串?

我有一个像这样的字符串=

str = (((MY (NAME IS) IS) YOUR NAME)
Run Code Online (Sandbox Code Playgroud)

我想拆分此字符串中的所有值以获得如下结果:

lst = ['(', '(', '(', 'MY', '(', 'NAME', 'IS', ')', 'IS', ')', 'YOUR', 'NAME', ')']
Run Code Online (Sandbox Code Playgroud)

是否可以使用多个分隔符拆分字符串?

python string

0
推荐指数
1
解决办法
99
查看次数

在Python中对列表进行排序,但保留具有前缀的组

我有一个这样的列表:

a = ['1', '3', '02', 'WF2', 'WF5', 'WF01']
Run Code Online (Sandbox Code Playgroud)

我想这样排序:

a = ['1', '02', '3', 'WF01', 'WF2', 'WF5']
Run Code Online (Sandbox Code Playgroud)

使用这样的东西:

def sortby(id):
    if 'WF' not in id and id.isdigit():
        return int(id)
    elif 'WF' in id.upper():
        return float('inf')

a.sort(key=sortby)
Run Code Online (Sandbox Code Playgroud)

我可以在没有'WF'前缀的情况下对整数进行排序,但我不知道如何对自己前缀为'WF'的那些进行排序.

我是否需要使用双重排序,即再次排序并仅对前缀为"WF"的排序进行排序,并将-Inf分配给所有其他没有"WF"前缀的条目?任何的想法?

编辑:

def sortby(id):
    if 'WF' not in id.upper():
        return int(id)
    return float('inf')

def sortby2(id):
    if 'WF' not in id.upper():
        return float('-inf')
    return int(id.replace('WF', ''))

a.sort(key=sortby)
a.sort(key=sortby2)
Run Code Online (Sandbox Code Playgroud)

但它不是很好......

python sorting list

0
推荐指数
1
解决办法
81
查看次数

包装文本文件,以便每行包含最多80个字符

是否有更好的方法来解决这个问题,最好不要通过模块.

问题是:

文字处理.您厌倦了在电子邮件包装上看到行,因为人们为您的邮件阅读器应用程序键入的行太长.创建一个程序来扫描长度超过80个字符的所有行的文本文件.对于每个违规行,找到80个字符前最接近的单词并在那里打破该行,将剩余的文本插入下一行(并将下一行向下推一行).完成后,不应有超过80个字符的行.

让9-16.txt的内容是:

Text Processing. You are tired of seeing lines on your e-mail wrap because people type lines that are too long for your mail reader application. Create a program to scan a text file for all lines longer than 80 characters. For each of the offending lines, find the closest word before 80 characters and break the line there, inserting the remaining text to the next line (and pushing the previous next line down one). When you …
Run Code Online (Sandbox Code Playgroud)

python string python-3.x

-1
推荐指数
1
解决办法
2121
查看次数

如何访问python中的dicts列表中的属性?

假设我有一个词典:

firstdict = {"somelist":[]}
Run Code Online (Sandbox Code Playgroud)

我有另一个词:

  seconddict = {"attribute1": "value1", "attribute2": "value2"}
Run Code Online (Sandbox Code Playgroud)

附上字典后

firstdict["somelist"].append(seconddict)
Run Code Online (Sandbox Code Playgroud)

我想打印"attribute1"值.虽然以下声明不起作用:

print firstdict["somelist"][0].attribute1
Run Code Online (Sandbox Code Playgroud)

如何打印/访问attribute1的值?

python

-1
推荐指数
1
解决办法
78
查看次数

文件声明中的警告

我正在警告:Assignment to reserved built-in symbol: file 在这个命令上:

file=open(fileName,'r')
Run Code Online (Sandbox Code Playgroud)

任何具体原因?

python warnings

-1
推荐指数
1
解决办法
989
查看次数

如何组合2个向量?

假设我有2个向量[2,4,6,8]和[1,3,5].

如果我根据他们的索引组合数字,我希望[3,7,11]作为我的结果.如果一个向量的索引多于另一个向量,则它将在计算中被排除.(这就是为什么8不包括在这里).我的问题是如何组合2个向量而忽略额外的8,如上所示?我需要一个功能.

def v_add(num1, num2):
    total = num1 + num2
    return total
Run Code Online (Sandbox Code Playgroud)

python function list

-1
推荐指数
1
解决办法
640
查看次数