我有一些将结果对象附加到列表的 python 代码。
objs = []
objs.append(results['Contents'])
Run Code Online (Sandbox Code Playgroud)
如果我打印results['Contents'],它看起来像这样:
[
{
"id": 1,
"name", "joe"
},
{
"id": 2,
"name", "jane"
},
{
"id": 3,
"name", "john"
}
]
Run Code Online (Sandbox Code Playgroud)
但是,当我打印时objs,它看起来像这样 - 正如您所看到的,它现在是列表中的一个列表:
[
[
{
"id": 1,
"name", "joe"
},
{
"id": 2,
"name", "jane"
},
{
"id": 3,
"name", "john"
}
]
]
Run Code Online (Sandbox Code Playgroud)
这开始给我带来问题,因为我开始循环并附加更多对象(结构类似于results['Contents']),如下所示:
objs.append(l_objs['Contents'])
Run Code Online (Sandbox Code Playgroud)
当我最终得到这样的结果时:
[
[
{
"id": 1,
"name", "joe"
},
{
"id": 2,
"name", "jane"
},
{
"id": 3,
"name", …Run Code Online (Sandbox Code Playgroud) >>> 5 > 4 & 6 > 5
Run Code Online (Sandbox Code Playgroud)
为什么上面的表达式False在 Python 中给出,if 5 > 4isTrue和6 > 5is also True?
我有以下目标:在 python 中将日期时间字符串转换为纳秒整数。
这是我在这个过程中发现的奇怪之处:
from datetime import datetime
datetime_str = '2015-01-08T08:23:21.301812Z'
nanoseconds = 1000000000
datetime_nanoseconds = int(datetime.strptime(datetime_str, '%Y-%m-%dT%H:%M:%S.%fZ').timestamp() * nanoseconds)
Run Code Online (Sandbox Code Playgroud)
当我打印时,datetime_nanoseconds我得到以下数字1420701801301811968。
第一个问题:最后三个数字968从何而来?我期待1420701801301812000
令人惊讶的是,如果我除以1420701801301811968 / nanoseconds我会1420701801.30181在几秒钟内得到我期望的值2,而这最后三位数字现在消失了。
第二个问题:为什么最后三位数字现在消失了?
我觉得python不适用于亚微秒时间......
任何有关该主题的帮助将不胜感激。
我有一个列表和一个常量,我想知道列表中的哪些元素大于常量。
ls = [2, 1, 0, 1, 3, 2, 1, 2, 1]
constant = 1.5
Run Code Online (Sandbox Code Playgroud)
所以我只是做了:
ls >= constant
Run Code Online (Sandbox Code Playgroud)
我希望它返回:
[TRUE, FALSE, FALSE, FALSE, TRUE, TRUE, FALSE, TRUE, FALSE]
Run Code Online (Sandbox Code Playgroud)
但是它返回了一个错误!!!
TypeError Traceback (most recent call last)
<ipython-input-92-91099ebca512> in <module>
----> 1 ls > constant
TypeError: '>' not supported between instances of 'list' and 'float'
Run Code Online (Sandbox Code Playgroud)
python 如何将向量与简单的常量值进行比较?
我需要在两个设定的限制之间生成一个等距的数字列表。作为输入,我有两个设置限制和我需要的数字数量,作为输出,我有列表。
是否有任何预定义的 Python 函数可以做到这一点,或者我必须自己编程?
假设我正在跟踪遍历列表或整数流时遇到的最大值。传统的变量初始化看起来像这样:
maxNum = <min-possible-value>
for num in listOfNums:
maxNum = max(maxNum, num)
Run Code Online (Sandbox Code Playgroud)
鉴于这sys.maxint在 Python3 中不是一回事,而且实际上对大小(或小)没有限制int,我应该将 maxNum 初始化为什么?或者有什么更好的替代方法来做到这一点?
(注意:与 yessys.maxsize不完全相同sys.maxint,yesint的值可以大于sys.maxsize)
是否math.inf可行?请注意,这个值是一个浮点数而不是一个整数
我有一个我正在使用内联循环循环的列表:
list = [{'information':{'num':1, 'name':'Helen', 'age':28}},
{'information':{'num':2, 'name':'John', 'age':20}},
{'information':{'num':3, 'name':'Jake', 'age':22}}]
Run Code Online (Sandbox Code Playgroud)
所以我想做这样的事情:
loop = [(with person.information as per)
{num:per.num, name:per.name, age=per.age}
for person in mylist]
Run Code Online (Sandbox Code Playgroud)
但它不起作用。有没有办法将person.information对象重命名为每个对象?
我担心的是我不想person.information每次都写。
我有输入month和day都是int类型,我想将它们传递给函数来构造路径,如果month或day是低于 10 的数字,我们0在数字前面添加一个:
def construct_path(year, month, day):
if month >= 10 or day >= 10:
path = f"xxx/{year}/{month}/{day}"
elif month < 10 and day >= 10:
path = f"xxx/{year}/0{month}/{day}"
elif month >=10 and day <10:
path = f"xxx/{year}/{month}/0{day}"
else:
path = f"xxx/{year}/0{month}/0{day}"
return path
Run Code Online (Sandbox Code Playgroud)
所以construct_path(2021, 5, 2)应该返回xxx/2021/05/02。
代码可以工作,但看起来很复杂,有没有更好的方法来实现这一点?
我想要一个由数字组成的列表,乘数随着每一步的增加而增加。基本的嵌套for循环很简单。
numbers = []
i = 1
for x in range(50):
numbers.append(x*i)
i += 1
Run Code Online (Sandbox Code Playgroud)
但是当我尝试使用列表理解来做这件事时,它并不像我想要的那样工作。
numbers = [x * i for x in range(50) for i in range(50)]
Run Code Online (Sandbox Code Playgroud)
我知道我在列表理解上做错了,但我不知道如何解决。
我正在尝试编写一个需要 3 个输入的函数:一个字符串(已命名word)、一个整数(已命名n)、另一个字符串(已命名delim',然后该函数必须重复命名word n时间的字符串(这很容易),并且在每次重复之间它都有插入名为 的字符串delim。
我知道这段代码有效:
print('me', 'cat', 'table', sep='&')
Run Code Online (Sandbox Code Playgroud)
但这段代码没有:
print(cat*3, sep='&')
Run Code Online (Sandbox Code Playgroud)
我写的代码几乎没用,但我还是会发布它——可能还有我不知道的其他错误或不准确之处。
def repeat(word, n, delim):
print(word*n , sep=delim)
def main():
string=input('insert a string: ')
n=int(input('insert number of repetition: '))
delim=input('insert the separator: ')
repeat(string, n, delim)
main()
Run Code Online (Sandbox Code Playgroud)
例如,给定以下输入:
word='cat', n=3, delim='petting'
Run Code Online (Sandbox Code Playgroud)
我希望该程序回馈:
catpettingcatpettingcat
Run Code Online (Sandbox Code Playgroud) python ×10
python-3.x ×3
datetime ×1
f-string ×1
if-statement ×1
max ×1
repeat ×1
string ×1
time ×1