小编Roa*_*ner的帖子

如何有效地获取Python中两个列表列表中元素的均值

我有两个列表如下。

mylist1 = [["lemon", 0.1], ["egg", 0.1], ["muffin", 0.3], ["chocolate", 0.5]]
mylist2 = [["chocolate", 0.5], ["milk", 0.2], ["carrot", 0.8], ["egg", 0.8]]
Run Code Online (Sandbox Code Playgroud)

我想得到两个列表中公共元素的平均值,如下所示。

myoutput = [["chocolate", 0.5], ["egg", 0.45]]
Run Code Online (Sandbox Code Playgroud)

我目前的代码如下

for item1 in mylist1:
    for item2 in mylist2:
        if item1[0] == item2[0]:
             print(np.mean([item1[1], item2[1]]))
Run Code Online (Sandbox Code Playgroud)

然而,由于有两个for循环(O(n^2)复杂性),这对于很长的列表来说效率很低。我想知道在 Python 中是否有更标准/更有效的方法来做到这一点。

python list mean

50
推荐指数
8
解决办法
2283
查看次数

Python 中的过滤对象数组

我正在使用 Python 来挖掘一个相当大的项目并挖掘有关它的信息。我能够创建一个ProjectFiles 数组,但是我很难弄清楚如何过滤它。

class ProjectFile:
    def __init__(self, filename: str,
                 number_of_lines: int,
                 language: str,
                 repo: str,
                 size: int):
        self.filename = filename
        self.number_of_lines = number_of_lines
        self.language = language
        self.repo = repo
        self.size = size
Run Code Online (Sandbox Code Playgroud)

我如何过滤ProjectFile特定对象的数组repo

例如,假设我想过滤repo属性为 的对象SomeCocoapod

我寻找过 的示例filter,但我找到的所有内容都使用简单的示例,例如str或 的列表int

python oop python-3.x

15
推荐指数
1
解决办法
2万
查看次数

将键添加到defaultdict(dict)

我有一个看起来像这样的defaultdict:

my_dict = defaultdict(dict)
Run Code Online (Sandbox Code Playgroud)

将打印出来:

defaultdict(<class 'dict'>, {})
Run Code Online (Sandbox Code Playgroud)

我还有两个列表,如下所示:

list1 =  ["W", "IY", "W"]
list2 =  ["w", "ee", "w"]
Run Code Online (Sandbox Code Playgroud)

我想创建一个默认的dict,如下所示:

defaultdict(<class 'dict'>, {'W': {'w': 2}, 'IY': {'ee': 1}}
Run Code Online (Sandbox Code Playgroud)

其中list1在字典中作为键,键作为下一个列表,带有单独的字典,将list2的实例计为值.

到目前为止我有这个:

from collections import defaultdict

d = defaultdict(dict)

list1 = ["W", "IY", "W"]
list2 = ["w", "ee", "w"]

for char in list1:
    d[char] += 1
Run Code Online (Sandbox Code Playgroud)

我知道这是不正确的,因为defaultdict(dict)不能以这种方式处理.我有办法做到这一点吗?任何帮助将不胜感激 :)

python dictionary

14
推荐指数
2
解决办法
5556
查看次数

将 xlsx 从 azure blob 存储读取到 pandas dataframe,而不创建临时文件

我正在尝试将 xlsx 文件从 Azure blob 存储读取到 pandas 数据帧,而不创建临时本地文件。我见过很多类似的问题,例如Issues Reading Azure Blob CSV Into Python Pandas DF,但尚未设法使建议的解决方案发挥作用。

下面的代码片段会导致UnicodeDecodeError: 'utf-8' codec can't decode byte 0x87 in position 14: invalid start byte异常。

from io import StringIO
import pandas as pd
from azure.storage.blob import BlobClient, BlobServiceClient

blob_client = BlobClient.from_blob_url(blob_url = url + container + "/" + blobname, credential = token)   
blob = blob_client.download_blob().content_as_text()   
df = pd.read_excel(StringIO(blob))
Run Code Online (Sandbox Code Playgroud)

使用临时文件,我确实设法使其与以下代码片段一起工作:

blob_service_client = BlobServiceClient(account_url = url, credential = token)
blob_client = blob_service_client.get_blob_client(container=container, blob=blobname)

with …
Run Code Online (Sandbox Code Playgroud)

python azure pandas

8
推荐指数
1
解决办法
4717
查看次数

前面的字长

我必须创建一个函数,它接受一个参数字,并返回文本中单词之前的单词的平均长度(以字符为单位).如果单词恰好是文本中出现的第一个单词,则该单词的前一个单词的长度应为零.例如

>>> average_length("the")
4.4
>>> average_length('whale')
False
average_length('ship.')
3.0 
Run Code Online (Sandbox Code Playgroud)

这是我到目前为止所写的,

def average_length(word):
    text = "Call me Ishmael. Some years ago - never mind how long..........."
    words = text.split()
    wordCount = len(words)

    Sum = 0
    for word in words:
        ch = len(word)
        Sum = Sum + ch
    avg = Sum/wordCount
    return avg
Run Code Online (Sandbox Code Playgroud)

我知道这根本不对,但是我无法正确处理这个问题.这个问题要求我在文本中找到单词的每个实例,当你这样做时,计算文本中紧接在它之前的单词的长度.不是每个单词从开头到那个单词,只有一个.

我还应该提到所有的测试只会使用'Moby Dick'中的第一段来测试我的代码:

"叫我以实玛利.几年前 - 没关系多长时间 - 我的钱包里没有钱,也没有什么特别令我感兴趣的,我觉得我会稍微航行一下,看看这个世界的水域.这是我驱除脾脏和调节血液循环的一种方式.每当我发现自己的嘴巴变得严峻;每当我的灵魂中充满潮湿,毛躁的十一月;每当我发现自己在棺材仓库前不由自主地停顿,并带来在我遇到的每一次葬礼的后方;特别是每当我的hypos得到我这样的优势时,它需要一个强有力的道德原则来防止我故意踩到街上,并有条不紊地敲掉别人的帽子 - 然后,我说我是时候尽快出海了.这是我用手枪和球的替代品.随着哲学的蓬勃发展,卡托把自己扔在剑上;我悄悄地带上了船.这里没有什么令人惊讶的.知道了,等等 大多数所有男性,无论是时间还是其他人,都非常珍惜和我一样对待海洋的感情."

python

6
推荐指数
1
解决办法
1447
查看次数

将 csv 转换为 json(嵌套对象)

我是 python 的新手,我必须按以下格式将 csv 文件转换为 json:

CSV 文件:

firstname, lastname, email, customerid, dateadded, customerstatus
john, doe, john.doe@do.com, 124,26/11/18,active
jane, doe, jane.doe@do.com, 125,26/11/18,active
Run Code Online (Sandbox Code Playgroud)

JSON 格式:

{
    firstname: "John",
    lastname: "Doe",
    emailOrPhone: "john.doe@do.com",
    extraFields: [{
            name: "customerid",
            value: "124"
        },
        {
            name: "dateadded",
            value: "26/11/18"
        },
        {
            name: "dateadded",
            value: "26/11/18"
        }
    ]
}, {
    firstname: "Jane",
    lastname: "Doe",
    emailOrPhone: "Jane.doe@do.com",
    extraFields: [{
            name: "customerid",
            value: "125"
        },
        {
            name: "dateadded",
            value: "26/11/18"
        },
        {
            name: "dateadded",
            value: "26/11/18"
        }
    ]
} …
Run Code Online (Sandbox Code Playgroud)

python json

6
推荐指数
1
解决办法
3594
查看次数

部分排序数组C.

我有一个看起来像这样的数组:

int array[] = {4.53, 3.65, 7.43, 9.54, 0.72, 0.0}
Run Code Online (Sandbox Code Playgroud)

我只是想知道我可以用什么方法对这个数组进行部分排序,将前三个最大的双打带到前面.我正在寻找最有效的方法来获得这个数组中前三个最高的数字.

到目前为止,我一直在使用qsort,但我只是在寻找另一种方法,可以更快.我知道这qsortO(nlogn)最好的情况和O(n^2)最坏的情况,但有没有更有效的方法来实现这个问题?我所说的高效是一种更快捷的方式,比这更好O(nlogn).

任何帮助都会很棒

c arrays qsort

5
推荐指数
1
解决办法
686
查看次数

如何使用3个列表在Python中创建嵌套字典

让我们假设,我创建了3个列表,我想为它创建一个字典.例如

a= ['A', 'B', 'C', 'D']
b =[1, 2, 3, 4]
c = [9, 8, 7, 6]
Run Code Online (Sandbox Code Playgroud)

现在我想要的是创建一个这样的字典:

{'A':{'1' :'9'} , 'B':{'2':'8'}, 'C':{'3':'7'} , 'D':{'4':'6'}}
Run Code Online (Sandbox Code Playgroud)

是否有可能,有人可以帮助我吗?

python dictionary

5
推荐指数
2
解决办法
2268
查看次数

在 C# 中喷溅

在 PowerShell 中,您可以创建一个哈希表,并使用 将这个哈希表添加到您的函数中@,这在 PowerShell中是splatting

$dict = @{param1 = 'test'; param2 = 12}
Get-Info @dict
Run Code Online (Sandbox Code Playgroud)

可以将字典作为参数集合传递给构造函数或方法吗?

c# powershell dictionary parameter-splatting

5
推荐指数
1
解决办法
333
查看次数

Azure CLI - 删除资源而不删除资源组

目标是删除资源组中的所有资源,而不使用 azure CLI 删除它。

通过阅读文档,我可以这样做:

az resource delete -g MyResourceGroup -n MyVm
Run Code Online (Sandbox Code Playgroud)

因此我认为我可以执行以下操作

az resource list   --resource-group MyResourceGroup | az resource delete 
Run Code Online (Sandbox Code Playgroud)

Azure Powershell 中的类似命令的工作方式与上面类似。我对 CLI 很陌生,这个方法可行吗?删除资源组中所有资源的有效方法是什么(如果我们有多种类型的资源)

azure azure-powershell azure-cli

5
推荐指数
1
解决办法
6158
查看次数