使用后get从中提取信息API的JSON格式,我现在试图计算的平均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的方式来实现相同的结果,但是在更短的时间内.
我的任务
我正在尝试使用正则表达式查找出现在字符串中的单词的位置
码
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)
编辑:为了澄清,我正在尝试确定单词的位置。我相信我所做的就是找到索引,并且不确定如何使其按预期工作
任务:
我想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)
我确信这是一个非常简单的解决方案,但我不知道.提前致谢.
我有以下列表:
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会导致问题.
列表:
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)
我想知道是否有替代或更有效的方法产生相同的结果,但只能在一行代码上实现.
我想,使用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)