小编use*_*974的帖子

在python中交错两个或多个列表的最佳方法?

假设我有一个列表:

l=['a','b','c']
Run Code Online (Sandbox Code Playgroud)

及其后缀列表:

l2 = ['a_1', 'b_1', 'c_1']
Run Code Online (Sandbox Code Playgroud)

我希望所需的输出为:

out_l = ['a','a_1','b','b_2','c','c_3']
Run Code Online (Sandbox Code Playgroud)

结果是上面两个列表的交错版本.

我可以编写常规for循环来完成这项工作,但我想知道是否有更多Pythonic方式(例如,使用list comprehension或lambda)来完成它.

我尝试过这样的事情:

list(map(lambda x: x[1]+'_'+str(x[0]+1), enumerate(a)))
# this only returns ['a_1', 'b_2', 'c_3']
Run Code Online (Sandbox Code Playgroud)

此外,对于一般情况需要做出哪些改变,即对于2个或更多列表,其中l2不一定是衍生物l

python performance list-comprehension list

30
推荐指数
3
解决办法
3256
查看次数

为什么jQuery click在包含在单独的文件中时不起作用

我是一个学习jQuery和web开发的初学者,所以这可能是一个愚蠢的问题,但我无法在Google上找到答案(可能我没有找到合适的关键字).我有一个简单的HTML文件(比如'test.html'加载jQuery,我写的外部javascript文件(比如'test.js'),里面有一个按钮.例如,

<html>
....
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<script src="scripts/test.js" type="text/javascript"></script>
....
<body>
<button type="button" class="button" id="my_button">test</button>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

在'test.js'中,我有:

$( "#my_button" ).click(function() {
    alert('test');
    return false;
});
Run Code Online (Sandbox Code Playgroud)

但是当我点击按钮时,它不起作用.但是,当我把'test.js'中的内容放在'test.html'中时,就像这样:

<html>
....
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<script type="text/javascript">
$(function() {
    $( "#my_button" ).click(function() {
        alert('test');
        return false;
    });
});
</script>
....
<body>
<button type="button" class="button" id="my_button">test</button>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

有用.第一个问题是:当我在外部文件中插入代码并加载它时,有人可以解释为什么它会起作用吗?是否总是需要将jQuery代码包装起来$(function() {......}以使其工作?

理想情况下,我不想在我的HTML模板中使用javascript代码,因为它显然很混乱.相关/第二个问题是:如上所述分离javascript/jQuery代码并使其在预期的HTML模板中工作的最干净/最好的方法是什么?

谢谢您的回答.

jquery

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

HTML5输入数字最小值不能使用所需

我想强迫用户输入他们的年龄.我还想确保他们只在18-99之间进入.这是可能有HTML5类似的属性required,pattern,minmax?好像它不起作用

<form>
    <input type="number" name="Q2age" id="Q2age" size="10" min="18" max="99" pattern="[1-8][0-9]" required>
    <button type="submit" class="button" id="test">Submit</button>
</form>
Run Code Online (Sandbox Code Playgroud)

我在这里做错了吗?我在Ubuntu 12.0.4LTS上使用Firefox 22.0(在Chrome上测试过,但不起作用.)感谢您的帮助.

html css html5

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

使用递归或迭代方法在Python中构建嵌套的树状结构

我一直试图建立一个嵌套的树状结构两天,并决定在这里寻求帮助.假设我有这样的数据:

rows = [
    {'Year': None, 'Region': None, 'Country': None, 'Manufacturer': None, 'Brand': None, 'Sales': 25}, # row 1 => SUM of (row 2 and row 14) = 15+25 = 40; this row represents, for example, all of the sales made so far (the ultimate total, if you will call it as such)
    {'Year': 2013, 'Region': None, 'Country': None, 'Manufacturer': None, 'Brand': None, 'Sales': 15}, # row 2 => SUM of sales from (row 3) = 15; this row represents, …
Run Code Online (Sandbox Code Playgroud)

python algorithm tree recursive-datastructures

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

Django的__search与__icontains之间的区别

我最近开始学习Django,所以请原谅我,如果这对你来说太新手了.

我有一个在Django中实现的搜索功能.我在MySQL DB中创建了全文索引,然后在我的书库模型中有一个字段search_keywords,其中我基本上存储了所有单词,包括书的标题和内容.然后我的搜索功能做了类似的事情:

search_keyword = self.request.GET.get('keywords')
    if search_keyword:
        # '*' is added for cases where user enters only part of the keyword
        qs = qs.filter(keywords__search=search_keyword + '*')
Run Code Online (Sandbox Code Playgroud)

但是如果我的搜索查询是'intro',我知道有一个单词/术语如'test.introduction'(如果该术语只是'引入'那么它工作正常),上述方法不起作用.

然后,当我尝试这样做:

        qs = qs.filter(keywords__icontains=search_keyword)
Run Code Online (Sandbox Code Playgroud)

它找到'test.introduction'等.

所以我开始想知道为什么会这样."__search"仅适用于全字搜索吗?我知道'__icontains'的情况有意义(不区分大小写并包含单词的一部分),但为什么要在DB中创建全文索引,这样我们可以在Django中使用'__search'?这是速度优势吗(例如,在搜索大量文本的情况下?或者我在这里完全遗漏了什么?

django full-text-search

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

在 Power BI 中创建按国家/地区和品牌返回 DISTINCT COUNT 的度量

我有一张如下表:

Country, Advertiser, Brand, Spend
C1,      A1,         B1,    10
C1,      A1,         B2,    5
C1,      A2,         B3,    0
C1,      A2,         B4,    20
C2,      A1,         B1,    8
C2,      A1,         B5,    7
C2,      A2,         B6,    4
C2,      A2,         B3,    3
C2,      A2,         B7,    2
C2,      A3,         B8,    9
Run Code Online (Sandbox Code Playgroud)

我想DISTINCT COUNT按国家/地区获得品牌,这很简单:

C1 => 4
C2 => 6
Run Code Online (Sandbox Code Playgroud)

如何创建Power BI可以嵌入表格或树状图中的度量?我已经试过了:

Measure = COUNTX(DISTINCT(sourceTable),sourceTable[Brand])
Run Code Online (Sandbox Code Playgroud)

它返回DISTINCT COUNT每个国家的品牌总数(不是)...

我也在下面尝试过,但没有用:

DistinctBrandCount =
    CALCULATE(DISTINCTCOUNT(SampleDataForDashboard[Brand]),
        GROUPBY(SampleDataForDashboard, SampleDataForDashboard[Country]))
Run Code Online (Sandbox Code Playgroud)

dax powerbi powerbi-desktop

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

从熊猫数据框中选择排序组的第一行

假设我在熊猫中有一个数据框,如下所示:

campaignname    category_type    amount
A               cat_A_0            2.0
A               cat_A_1            1.0
A               cat_A_2            3.0
A               cat_A_2            3.0
A               cat_A_2            4.0
B               cat_B_0            3.0
C               cat_C_0            1.0
C               cat_C_1            2.0
Run Code Online (Sandbox Code Playgroud)

我正在使用以下代码df按不同的列将上述数据框(例如,为它分配了变量name )分组,如下所示:

for name, gp in df.groupby('campaignname'):
    sorted_gp = gp.groupby(['campaignname', 'category_type']).sum().sort_values(['amount'], ascending=False)
    # I'd like to know how to select this in a cleaner/more concise way
    first_row = [sorted_gp.iloc[0].name[0], sorted_gp.iloc[0].name[1], sorted_gp.iloc[0].values.tolist()[0]]
Run Code Online (Sandbox Code Playgroud)

上面代码的目的是首先groupby将原始数据放在campaignname列中,然后在每个结果组中,我都希望再次按campaignname和进行分组category_type,最后,按amount列进行排序以选择出现的第一行(amount每个组中得分最高的一个。特别是对于上面的示例,我想获得如下结果:

first_row = ['A', 'cat_A_2', 4.0] # …
Run Code Online (Sandbox Code Playgroud)

python group-by numpy dataframe pandas

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

Django issubclass()arg 1在管理页面中输入TabularInline时必须是类错误

我在Django 1.5中有这些模型

class Number(models.Model):
    number = models.CharField("Patient's Number", max_length=12, unique=True)
    created = models.DateTimeField("Date created", auto_now=True)
    created.editable = True

class Appointment(models.Model):
    to_number = models.ForeignKey(Number)
    message = models.CharField("Message", max_length=160)
    send_on = models.DateTimeField("Date/Time to send the message")
    email = models.CharField("Email to forward the response to", max_length=254, blank=True)
    reply_to = models.CharField("Phone number to forward the response to", max_length=12, blank=True)

    created = models.DateTimeField("Date created", auto_now=True)
    created.editable = True

class MyLog(models.Model):
    to_number = models.CharField("To Number", max_length=12, blank=True)
    from_number = models.CharField("From Number", max_length=12, blank=True)
    email = models.CharField("Email …
Run Code Online (Sandbox Code Playgroud)

django django-models django-admin

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

为文件删除添加事件监听器

我正在学习如何向 a 添加一个EventListener<div>以便我可以将文件放入其中以读取 csv 文件。下面是我的简单 HTML 代码,它添加了一个EventListener,但是当我拖放文件时,Chrome 浏览器会不断下载我放下的文件,并且不会打印控制台输出“嘿”。如果有人能让我知道出了什么问题,我将不胜感激。:)

<!DOCTYPE html>
<html>
    <head>
        <title>Test</title>
<style>
#drop{
  border:2px dashed #bbb;
  -moz-border-radius:5px;
  -webkit-border-radius:5px;
  border-radius:5px;
  padding:25px;
  text-align:center;
  width:128px;
  font:20pt bold,"Vollkorn";color:#bbb
}
</style>
    </head>
    <body>
    <div id="drop">Drop a file here</div>

    <script type="text/javascript">
        var drop_dom_element = document.getElementById('drop');
        var workbook;

        /* set up drag-and-drop event */
        function handleDrop(e) {
          console.log('hello');
          e.stopPropagation();
          e.preventDefault();
          console.log('hey');
        }

        drop_dom_element.addEventListener('drop', handleDrop, false);
        console.log('Done');        
        </script>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

javascript jquery

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

为"CTE_YYYY"多次指定"xxxx"列

我是Microsoft SQL Server的新手.我正在尝试连接两个具有名为CampaignIDusing的公用密钥的表LEFT OUTER JOIN.我需要在不同的查询中重用结果,所以我决定使用捕获结果集CTE_Results.例如,

-- This is my CTE script
WITH CTE_Results AS
(
  SELECT t1.CampaignID, t2.CampaignID, t1.Name, t2.Vendor
  FROM CampaignDetails AS t1
  LEFT OUTER JOIN CampaignOnlineDetails AS t2
  ON t1.CampaignID = t2.CampaignID
)

-- This is the script I want to use to compare the resulting table. For example,
SELECT Vendor
FROM CTE_Results
Run Code Online (Sandbox Code Playgroud)

但是,当我跑到上面时,我得到:

The column `CampaignID` was specified multiple times for `CTE_Results`. 
Run Code Online (Sandbox Code Playgroud)

通过阅读旧的StackOverflow问题和答案,似乎从CampaignID两个表中加入,我必须使用表别名来指定CampaignID我想要的(哪个表)SELECT.但我认为我做到了这一点,甚至看起来错误仍然存​​在.

有没有办法让我选择并保留我的CTE中的两个CampaignID?如果是这样,应该改变什么?谢谢你的答案!

sql-server

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