小编Gre*_*ory的帖子

一次从列表中删除多个索引 - python

我的问题是我有一个列表,例如.

lst = [2, 5, 7, 12, 13]


lst.pop(3) #12
lst.pop(4) #13
Run Code Online (Sandbox Code Playgroud)

因为lst [3]已被删除,所以[4]不再存在(超出范围).这给了我一个错误.现在我知道你可以说你的代码更改为:...

lst.pop(4) #13
lst.pop(3) #12
Run Code Online (Sandbox Code Playgroud)

...并且它修复了错误,但我的问题是我的实际代码是'弹出'随机数,所以它需要同时完成以避免错误.

有没有同时'弹出'的方法?...就像这样的东西:

lst.pop(3, 4) #12 and 13 at once
Run Code Online (Sandbox Code Playgroud)

谢谢你的回答.

python list python-3.x

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

代表旅行推销员作为线性表达

我在网上看到,人们可以将旅行商问题写成线性表达式,并使用CPLEX for java等软件进行计算.

我有1000个城镇,需要找一小段距离.我计划将这1000个城镇划分为约100个城镇的集群,并在这些单独的集群上执行一些线性规划算法.

我的问题是,我究竟如何将其表示为线性表达式.

所以我有100个城镇,我相信每个人都知道TSP是如何工作的.

我完全不知道如何编写满足TSP的线性约束,目标和变量.

有人可以向我解释这是如何完成的,或者给我一个清楚解释它的链接,因为我一直在研究很多,似乎找不到任何东西.

编辑:

我找到了一些额外的信息:

我们用数字0到n标记城市并定义矩阵:

在此输入图像描述

这会为5个城镇产生以下矩阵吗?

在此输入图像描述

限制是:

i)每个城市都来自其他城市

ii)从每个城市出发前往另一个城市

iii)该路线不会分成不同的岛屿.

同样,这对我来说是完全合理的,但我仍然无法将这些约束写为线性表达式.显然它是一个简单的矩阵.

谢谢你的帮助 !

algorithm linear-algebra linear-programming traveling-salesman cplex

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

在pygame中使用文本输入

import tkinter as tk    
import pygame

pygame.init()
ss = width, height = 1024, 600
screen = pygame.display.set_mode(ss)
tkinput_1 = True    

while True:

    event = pygame.event.poll()
    keys = pygame.key.get_pressed()

    if event.type == pygame.QUIT:
        pygame.quit()
        sys.exit()

    screen.fill((0,0,0))

    if tkinput_1 == True:
         tkinput_root1 = tk.Tk()
         tkinput_root1.geometry("200x200")
         tkinput_root1.title("How many teams?")
         tkinput_input1 = tk.Entry(tkinput_root1)
         tkinput_1 = False

    pygame.display.update()

tkinput_root1.mainloop()
Run Code Online (Sandbox Code Playgroud)

这只是我给tkinter文本输入框一个pygame的镜头.我相当肯定它不会正常工作,但我决定尝试它,因为我没有什么可失去的.在您退出pygame之前,tkinter屏幕不会显示.所以,我不是在问是否有人知道如何修复代码,而是如果有人知道在pygame中创建文本框的最简单方法.我知道有一个可以导入的textinput类模块.如果您认为这是最简单的方法,那么您可以引导我完成它.如果没有,请告诉我你认为最简单的方法.这是一个小程序,所以我想避免一些简单的文本框的大量代码.让我知道你们的想法.非常感谢提前.

python textbox pygame tkinter input

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

python如果用户输入包含字符串

非常基本的问题.我们有代码:

a = input("how old are you")

if a == string:
    do this

if a == integer (a != string):  
    do that
Run Code Online (Sandbox Code Playgroud)

显然它不会那样工作.但是最简单的方法是什么呢.感谢您提前得到任何答案.

我们也可以说:

if string in a:
    do this
Run Code Online (Sandbox Code Playgroud)

python string if-statement input python-3.x

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

以编程方式将部分和单元格添加到Table View Swift

假设我有一个列表/数组的部分:

let sections = [new Section("today", todaylist), 
                new Section("yesterday", yestlist), 
                new Section("25th February", list25f),...]
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,每个部分都有一个部分名称和一个对象列表,这些对象将填充该特定部分中的单元格.

现在,让我们说这些对象只是简单的字符串.

我将如何以编程方式循环sections并创建具有适当标题和适当数量的单元格的新部分.

即 - 部分号的单元格数量.我会:

sections[i].getList().count
Run Code Online (Sandbox Code Playgroud)

在"今天"的情况下,这相当于

todaylist.count
Run Code Online (Sandbox Code Playgroud)

我无法在故事板中添加部分,因为它会有所不同,表格视图将是动态的!

谢谢你的帮助 !

uitableview ios swift

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

在Core Data Loaded Swift之后异步刷新UITableView

我有一个UITableView, tViewNews

我有一个刷新功能,从我的服务器下载数据,将其存储到核心数据,然后表视图从核心数据加载这些数据.

它完美地运作

func refresh(refreshControl: UIRefreshControl) {

    self.newsArray = [NewsItem]()
    self.newslists = [[NewsItem]]()
    self.getNewsFromServer()
    self.getNewsFromCoreData()
    self.tViewNews.reloadData()

    refreshControl.endRefreshing()
}
Run Code Online (Sandbox Code Playgroud)

现在,当用户第一次打开新闻时viewDidLoad(),我希望表视图首先从核心数据加载,然后从服务器异步填充我的表视图数组(使用与刷新函数完全相同的方法),然后重新加载表视图.

所以我在我的viewDidLoad()函数中尝试了以下代码.

override func viewDidLoad() {
    super.viewDidLoad()

    // Getting news from Core Data
    getNewsFromCoreData()

    // Updating core data from server and populating table view from core data
    dispatch_async(dispatch_get_main_queue()) {

        self.newsArray = [NewsItem]()
        self.newslists = [[NewsItem]]()
        self.getNewsFromServer()
        self.getNewsFromCoreData()
        self.tViewNews.reloadData()

    }
Run Code Online (Sandbox Code Playgroud)

如您所见,在异步请求中运行的函数与刷新函数内的函数相同.

但是!,刷新功能正常运行,填充并重新加载表视图.但异步请求绝对没有任何作用.表格视图仍为空.但正如使用print语句测试的那样,函数正在运行.

任何人都知道为什么会这样吗?

编辑 - 增加了额外的功能

获取核心数据

func getNewsFromCoreData() {
    let temp = StaffCoreData()
    temp.getAllNews()

    newsDates = Dictionary<Int, …
Run Code Online (Sandbox Code Playgroud)

iphone asynchronous uitableview ios swift

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

在运行时Swift之后根据边距约束获取视图高度

我在屏幕中心有一个圆圈,50两端都有边距限制.因此,圆的宽度取决于屏幕尺寸.

所以,我试过的是这个:

方法1

我在故事板中设置边距以定义圆宽(50左右)

然后我使用了以下代码:

@IBOutlet weak var helpButHeight: NSLayoutConstraint!
@IBOutlet weak var helpBut: UIButton!
Run Code Online (Sandbox Code Playgroud)

viewDidLoad中:

helpButHeight.constant = helpBut.frame.size.width
Run Code Online (Sandbox Code Playgroud)

这没用.

由于屏幕宽度是400,并且边距是50两端,所以helpBut.frame.size.width应该给我300.

相反,它给了我46.

方法2

这是我的解决方法:

viewDidLoad中:

    let screenSize: CGRect = UIScreen.mainScreen().bounds
    helpButHeight.constant = screenSize.width - 100
Run Code Online (Sandbox Code Playgroud)

因为100 = 50 + 50,两个边缘.

工作良好 !

我为什么要这样做?为什么第一种方法不起作用?为什么46300呢?

constraints ios swift

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

通过Button Swift中的标签发送行和部分

我在cellForRowAtIndexPath中有这个

   cell.plusBut.tag = indexPath.row
   cell.plusBut.addTarget(self, action: "plusHit:", forControlEvents: UIControlEvents.TouchUpInside)
Run Code Online (Sandbox Code Playgroud)

而这个功能在外面:

func plusHit(sender: UIButton!){
    buildings[sender.tag].something = somethingElse
}
Run Code Online (Sandbox Code Playgroud)

是否有可能发送indexPath.row indexPath.section,或某些替代?

谢谢!

编辑

我这样接近它:

我的自定义按钮

class MyButton: UIButton{

    var myRow: Int = 0
    var mySection: Int = 0

}
Run Code Online (Sandbox Code Playgroud)

我的自定义细胞

class NewsCell: UITableViewCell{

    @IBOutlet weak var greenLike: MyButton!
Run Code Online (Sandbox Code Playgroud)

在CellForRowAtIndexPath中

    cell.greenLike.myRow = indexPath.row
Run Code Online (Sandbox Code Playgroud)

我在这一行上收到错误.

button uitableview ios sender-id swift

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

有效地查询Hbase

我正在使用Java作为查询Hbase的客户端.

我的Hbase表设置如下:

ROWKEY     |     HOST     |     EVENT
-----------|--------------|----------
21_1465435 | host.hst.com |  clicked
22_1463456 | hlo.wrld.com |  dragged
    .             .             .
    .             .             .
    .             .             .
Run Code Online (Sandbox Code Playgroud)

我需要做的第一件事是让所有的清单ROWKEYshost.hst.com与它相关联.

我可以在Column上创建一个扫描器,host对于每个行值,column value = host.hst.com我将添加相应ROWKEY的列表.看起来效率很高.O(n)获取所有行.

现在是困难的部分.对于ROWKEY列表中的每一个,我需要得到相应的EVENT.

如果我使用普通GET命令来获取单元格(ROWKEY, EVENT),我相信会创建一个扫描程序EVENT,需要O(n)时间才能找到正确的单元格并返回值.这对每个人来说都是非常糟糕的时间复杂性ROWKEY.结合这两者给了我们O(n^2).

有没有更有效的方法来解决这个问题?

非常感谢您提前帮助!

java hadoop hbase mapreduce hadoop2

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

仅在 Docker 中构建时不支持的引擎节点/NPM

我有一个依赖项,package.json它本身具有以下依赖项:

"node-rdkafka": "^2.5.0",

使用nvm我的本地机器上,我的节点版本设置8.9.1,我的npm版本是5.5.1,我可以成功运行

npm install node-rdkafka@2.7.1

但是当npm install从我的 docker 镜像中运行相同的东西(即)时:

FROM node:10.13.0-alpine 或者 FROM node:8.9.1-alpine

我收到以下错误:

npm ERR! notsup Unsupported engine for node-rdkafka@2.7.1: wanted: {"node":">=12.0.0"} (current: {"node":"10.13.0","npm":"6.4.1"})
npm ERR! notsup Not compatible with your version of node/npm: node-rdkafka@2.7.1
npm ERR! notsup Not compatible with your version of node/npm: node-rdkafka@2.7.1
npm ERR! notsup Required: {"node":">=12.0.0"}
npm ERR! notsup Actual:   {"npm":"6.4.1","node":"10.13.0"}
Run Code Online (Sandbox Code Playgroud)

关于这种不一致的任何想法?

我显然不需要这么高的节点版本。但它说我愿意。

node.js npm nvm docker alpine-linux

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