小编Cha*_*a07的帖子

获得 k 个排序数组的交集的最有效方法是什么?

给定 k 个排序数组,获取这些列表交集的最有效方法是什么

例子

输入:

[[1,3,5,7], [1,1,3,5,7], [1,4,7,9]] 
Run Code Online (Sandbox Code Playgroud)

输出:

[1,7]
Run Code Online (Sandbox Code Playgroud)

有一种方法可以根据我在 nlogk 时间的编程面试元素中读到的内容来获得 k 个排序数组的并集。我想知道是否有办法为十字路口做类似的事情

## merge sorted arrays in nlogk time [ regular appending and merging is nlogn time ]
import heapq
def mergeArys(srtd_arys):
    heap = []
    srtd_iters = [iter(x) for x in srtd_arys]
    
    # put the first element from each srtd array onto the heap
    for idx, it in enumerate(srtd_iters):
        elem = next(it, None)
        if elem:
            heapq.heappush(heap, (elem, idx))
    
    res = []
 
    # collect results in nlogK time …
Run Code Online (Sandbox Code Playgroud)

python algorithm python-3.x

13
推荐指数
2
解决办法
3529
查看次数

将标签从 CLI 传递到 Pytest-bdd 并执行特定场景

标签(烟雾/回归)从 CLI 传递并在 conftest.py 中解释以执行满足标签的场景。

我在这里查看了 pytest-bdd 文档 ,但未能找到连接。

场景大纲有:(因为Python装饰器可以堆叠)

@pytest.mark.smoke
Scenario Outline: "VALID" Test

@pytest.mark.smoke
@pytest.mark.regression
  Scenario Outline: "INVALID" Test

@pytest.mark.regression
  Scenario Outline: "MIXED" Test
Run Code Online (Sandbox Code Playgroud)

测试.py

def pytest_bdd_apply_tag(tag, function):    
    if 'smoke' not in tag:  #what should I use to take values from CLI and execute those
        marker = pytest.mark.skip # skips scenario where 'smoke' is not marked
        marker(function)
        return True
    return None
Run Code Online (Sandbox Code Playgroud)

conftest.py 中的上述代码会跳过所有场景。CLI 输入:

pytest --env='qa' -m 'smoke'

其中pytest_addoption用于--env='qa'pytest_bdd_apply_tagfor -m。 …

fixtures pytest python-3.x python-requests

4
推荐指数
1
解决办法
3903
查看次数

如何使用python解码colnames pandas dataframe?

我用pandas在python中导入了数据框。但是我有奇怪的编码列名称。

colnames = ['Price \xe2\x82\xac', 'x-rate \xe2\x82\xac/$']
Run Code Online (Sandbox Code Playgroud)

您能帮我解码这些列名吗?

python dataframe pandas

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

如何使用 Python 编辑 .xlsx 文件的核心属性?

我正在尝试填充 Excel 文件的一些核心属性字段(即主题、类别和标题字段),但找不到这样做的方法。

我能够使用 docx 模块使用 .docx 文件完成此操作,如下所示:

doc = docx.Document(file)

name = doc.tables[1]._cells[43].text
data = doc.tables[0]._cells[1].text
numbers = re.findall('\d{9}', data)

doc.core_properties.title = numbers[0]
doc.core_properties.category = numbers[1]
doc.core_properties.subject = name

doc.save(file)
Run Code Online (Sandbox Code Playgroud)

是否有类似的方法可以使用 .xlsx 文件执行此操作,还是我不走运?

python excel fileinfo python-3.x

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

减少Python中的IF语句数量

我写了一个函数,它将有多达72个IF语句,我希望编写的代码会更短,但不知道从哪里开始

当选择单选按钮时,该函数会读取self.timeselect变量,并将结果保存到名为missing_time.txt的文本文件中.如果结果等于1,则将"0000"保存到文件中,如果结果为2,则将0020保存到文本文件等.这可以是72种可能的组合.

有没有更简单的方法来简化功能?

def buttonaction():
    selectedchoice = ""            
    if self.timeselect.get() == 1:                
        selectedchoice = "0000"
        orig_stdout = sys.stdout
        f = open('missing_time.txt', 'w')
        sys.stdout = f
        print(selectedchoice)
        f.close()
    if self.timeselect.get() == 2:                
        selectedchoice = "0020"
        orig_stdout = sys.stdout
        f = open('missing_time.txt', 'w')
        sys.stdout = f
        print(selectedchoice)
        f.close()

self.timeselect = tkinter.IntVar()

self.Radio_1 = tkinter.Radiobutton(text="0000",variable = 
self.timeselect,indicator = 0 ,value=1)  
self.Radio_1.place(x=50,y=200)
self.Radio_2 = tkinter.Radiobutton(text="0020",variable = 
self.timeselect,indicator = 0 ,value=2)  
self.Radio_2.place(x=90,y=200)
Run Code Online (Sandbox Code Playgroud)

python-3.x

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

如何在 Python 中获取特定日期范围的数据?

我从互联网创建了一个数据集:

我正在使用基于我的本地文件(JSON 输出)的以下代码:

Validdata = []
for new in Sampledata:
    print(str(new['title']) + " | " + str(new['published'][:10]))
    Validdata.append(new) 
Run Code Online (Sandbox Code Playgroud)

我的输出:

Amnesia: Collection Hits Xbox One Next Week | 2018-08-27
(USA) Building Safety Technician | 2018-08-27
SONY VAIO VPCCA15FG DRIVERS DOWNLOAD | 2018-08-26
Google Alert - windows 10 | 2018-08-27
Run Code Online (Sandbox Code Playgroud)

如果我们看到我有这样的数据,每个标题的末尾都有日期,并且我只想打印出介于特定日期范围之间的文章:

我尝试使用它进行比较,但收到此错误消息:

Startdate = '2018-09-01'
Enddate = '2018-10-01'
underDaterange = []
for value in Sampledata['title']  and Sampledata['published'][:10] in range [Startdate:Enddate]:
       underDaterange.append(value)
Run Code Online (Sandbox Code Playgroud)

错误信息:

 TypeError: list indices must be integers or slices, not str
Run Code Online (Sandbox Code Playgroud)

python python-3.x

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

Python - 比较两个列表,以匹配项目包含不等于的项目?

是否可以在列表项包含匹配字符串的两个列表中搜索匹配,不相等?

例如:

list_a = [
    'ip prefix-list PL_ABBA seq 5 permit 10.10.10.0/24',
    'ip prefix-list PL_ABBA seq 10 permit 10.20.10.0/24',
    ]

list_b = [
    '10.10.10.0/24',
    '10.20.10.0/24',
    '10.30.10.0/24',
    '10.40.10.0/24',
    ]
Run Code Online (Sandbox Code Playgroud)

10.30.10.0/24并且10.40.10.0/24在list_a中缺少所以我想将这两个丢失?

我可以从list_a中取出子网来生成new_list_a然后使用set进行比较?但是想知道是否有更简单的方法?

谢谢

python

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

如何解决“类型错误:“示例”()不带参数”错误?

我根据我在 YouTube 上学到的关于类和对象的教程创建了一个简单的 MCQ,并将不同的 Python 程序导入其中。

以下是我创建的内容: 这是我创建的类。

class MCQ:
    def __int__(self, prompt, answer):
        self.prompt = prompt
        self.answer = answer
Run Code Online (Sandbox Code Playgroud)

这是名为 MCQ_Code 的第二个程序。

from MCQ_Code import MCQ
question_prompts = [
"What is the colour of a banana? \n(a) Red\n(b) Blue \n(c) Yellow\n(d) White\n\n",
"What is the colour of an apple? \n(a) Red\n(b) Blue \n(c) Yellow\n(d) White\n\n",
"What is the colour of blueberries? \n(a) Red\n(b) Blue \n(c) Yellow\n(d) White\n\n"
]

questions = [
MCQ(question_prompts[0], "c"),
MCQ(question_prompts[1], "a"),
MCQ(question_prompts[2], "b"),
]

def …
Run Code Online (Sandbox Code Playgroud)

python

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

os.walk 未显示给定路径中的所有文件

我正在尝试制作自己的备份程序,但要做到这一点,我需要能够提供一个目录,并能够获取子目录深处的每个文件,以便能够复制它们。我尝试制作一个脚本,但它没有给我该目录中的所有文件。我使用文档作为测试,我的项目列表为 3600,但文件数量应为 17000。为什么没有os.walk显示所有内容?

import os
data = []
for mdir, dirs, files in os.walk('C:/Users/Name/Documents'):
    data.append(files)
print(data)
print(len(data))
Run Code Online (Sandbox Code Playgroud)

python os.walk python-3.x

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