小编Lea*_*ava的帖子

是否有更多pythonic /更有效的方法来循环包含列表的字典而不是使用for循环?

使用后get从中提取信息APIJSON格式,我现在试图计算的平均price高效的方式.

data (来自API调用的示例响应):

...
{u'status': u'success', u'data': {u'context_id': u'2', u'app_id': u'123', u'sales': [{u'sold_at': 133, u'price': u'1.8500', u'hash_name': u'Xuan881', u'value': u'-1.00000'}, {u'sold_at': 139, u'price': u'2.6100', u'hash_name': u'Xuan881', u'value': u'-1.00000'},
... etc.
Run Code Online (Sandbox Code Playgroud)

我已设法使用以下代码执行此操作:

len_sales = len(data["data"]["sales"])
total_p = 0 
for i in range(0,len_sales):
    total_p += float(data["data"]["sales"][i]["price"])
average = total_p/len_sales
print average
Run Code Online (Sandbox Code Playgroud)

但是,由于data检索到的字典大小很大,因此在显示输出之前似乎有相当多的等待时间.

因此,我想知道是否有更高效和/或pythonic的方式来实现相同的结果,但是在更短的时间内.

python loops for-loop list python-2.7

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

查找字符串中单词的位置

我的任务

我正在尝试使用正则表达式查找出现在字符串中的单词的位置

import re

# A random string

mystr = "there not what is jake can do for you ask what you play do for spare jake".upper() 

match = re.search(r"[^a-zA-Z](jake)[^a-zA-Z]", mystr)

print match.start(1)
Run Code Online (Sandbox Code Playgroud)

输出量

18
Run Code Online (Sandbox Code Playgroud)

预期产量

我希望我的输出包含字符串的位置jake

5, 17
Run Code Online (Sandbox Code Playgroud)

编辑:为了澄清,我正在尝试确定单词的位置。我相信我所做的就是找到索引,并且不确定如何使其按预期工作

python regex search python-2.7

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

用行值替换Pandas索引

任务:

我想0,1,2,3,4用下面的值替换索引值(即等)Main,同时删除Main因为它不再有用.

df:

                  Main             Ing 
0                  A              Apple            
1                  B              Bread            
2                  Z              Cheese            
3                  E              Egg            
4                  D              Dough           
5                  X              Pasta   
Run Code Online (Sandbox Code Playgroud)

我的目标:

输出:

                Ing 
A              Apple            
B              Bread            
Z              Cheese            
E              Egg            
D              Dough           
X              Pasta   
Run Code Online (Sandbox Code Playgroud)

我确信这是一个非常简单的解决方案,但我不知道.提前致谢.

python python-2.7 pandas

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

unicode列表的平均值

我有以下列表:

prices = [u'2.24', u'$2.24', u'$2.24', u'$2.24', u'$2.21']
Run Code Online (Sandbox Code Playgroud)

我想获得列表的平均值并尝试以下方法:

avgPrice = sum(prices) / float(len(prices))
Run Code Online (Sandbox Code Playgroud)

但是,由于某种原因,我收到以下错误

TypeError: unsupported operand type(s) for +: 'int' and 'unicode'
Run Code Online (Sandbox Code Playgroud)

我不明白为什么unicode会导致问题.

python list python-2.7

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

从同一行代码中的列表中删除最小和最大数字

列表:

RawScores = [3.4,1.2,5.8,7.2,2.8,9.1,7.6,4]
Run Code Online (Sandbox Code Playgroud)

目前我正在使用以下方法从列表中删除最高和最低数字:

RawScores.remove(max(RawScores))
RawScores.remove(min(RawScores))
Run Code Online (Sandbox Code Playgroud)

我想知道是否有替代或更有效的方法产生相同的结果,但只能在一行代码上实现.

python max min python-2.7

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

嵌套for循环以在两个字符串之间进行迭代

我想,使用for循环,遍历每个字符串并依次输出每个字符.

String a = "apple";
String b = "class";

for (int i = 0;  i < a.length() ; i++) { // - 1 because 0 = 1
    System.out.print(a.charAt(i));
    for (int j = 0; j < b.length(); j ++) {
        System.out.print(b.charAt(j));
    }
}
Run Code Online (Sandbox Code Playgroud)

我正在努力与内循环.

目前我的输出如下:

AClasspClasspClasslClasseClass
Run Code Online (Sandbox Code Playgroud)

但是,我想实现以下目标:

acplpalses
Run Code Online (Sandbox Code Playgroud)

扩展问题:

如何正常输出一个字符串而另一个正常输出?

目前的尝试:

for (int i = a.length() - 1; i >= 0; i--) {
    System.out.println(a.charAt(i));
    for (int j = 0; j < b.length(); j ++) {
        System.out.println(b.charAt(j));
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,这只是输出如上所述,只是以"Apple"的相反顺序输出,格式与上一个相同:

eclasslclasspclasspclassaclass
Run Code Online (Sandbox Code Playgroud)

java loops for-loop nested-loops

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

标签 统计

python ×5

python-2.7 ×5

for-loop ×2

list ×2

loops ×2

java ×1

max ×1

min ×1

nested-loops ×1

pandas ×1

regex ×1

search ×1