我有两个列表如下。
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 来挖掘一个相当大的项目并挖掘有关它的信息。我能够创建一个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。
我有一个看起来像这样的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)不能以这种方式处理.我有办法做到这一点吗?任何帮助将不胜感激 :)
我正在尝试将 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) 我必须创建一个函数,它接受一个参数字,并返回文本中单词之前的单词的平均长度(以字符为单位).如果单词恰好是文本中出现的第一个单词,则该单词的前一个单词的长度应为零.例如
>>> 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 的新手,我必须按以下格式将 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) 我有一个看起来像这样的数组:
int array[] = {4.53, 3.65, 7.43, 9.54, 0.72, 0.0}
Run Code Online (Sandbox Code Playgroud)
我只是想知道我可以用什么方法对这个数组进行部分排序,将前三个最大的双打带到前面.我正在寻找最有效的方法来获得这个数组中前三个最高的数字.
到目前为止,我一直在使用qsort,但我只是在寻找另一种方法,可以更快.我知道这qsort是O(nlogn)最好的情况和O(n^2)最坏的情况,但有没有更有效的方法来实现这个问题?我所说的高效是一种更快捷的方式,比这更好O(nlogn).
任何帮助都会很棒
让我们假设,我创建了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)
是否有可能,有人可以帮助我吗?
在 PowerShell 中,您可以创建一个哈希表,并使用 将这个哈希表添加到您的函数中@,这在 PowerShell中是splatting。
$dict = @{param1 = 'test'; param2 = 12}
Get-Info @dict
Run Code Online (Sandbox Code Playgroud)
可以将字典作为参数集合传递给构造函数或方法吗?
目标是删除资源组中的所有资源,而不使用 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 很陌生,这个方法可行吗?删除资源组中所有资源的有效方法是什么(如果我们有多种类型的资源)
python ×7
dictionary ×3
azure ×2
arrays ×1
azure-cli ×1
c ×1
c# ×1
json ×1
list ×1
mean ×1
oop ×1
pandas ×1
powershell ×1
python-3.x ×1
qsort ×1