小编mar*_*eau的帖子

将对象附加到列表

我有一些将结果对象附加到列表的 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)

python

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

为什么 True & True 给出 False?

>>> 5 > 4 & 6 > 5
Run Code Online (Sandbox Code Playgroud)

为什么上面的表达式False在 Python 中给出,if 5 > 4isTrue6 > 5is also True

python bitwise-operators

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

纳秒表现出奇怪的行为

我有以下目标:在 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不适用于亚微秒时间......

任何有关该主题的帮助将不胜感激。

python time datetime

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

查找列表中值大于常量的第一个元素

我有一个列表和一个常量,我想知道列表中的哪些元素大于常量。

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

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

是否有任何预定义的函数可以在两个设置的限制之间生成一组等距的数字?

我需要在两个设定的限制之间生成一个等距的数字列表。作为输入,我有两个设置限制和我需要的数字数量,作为输出,我有列表。

是否有任何预定义的 Python 函数可以做到这一点,或者我必须自己编程?

python

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

最小(或最大)变量的良好起始值是多少?

假设我正在跟踪遍历列表或整数流时遇到的最大值。传统的变量初始化看起来像这样:

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可行?请注意,这个值是一个浮点数而不是一个整数

python max python-3.x

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

如何在内联for循环中分配变量?

我有一个我正在使用内联循环循环的列表:

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每次都写。

python python-3.x

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

为整数月份和日期添加“0”的最简单方法是什么?

我有输入monthday都是int类型,我想将它们传递给函数来构造路径,如果monthday是低于 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

代码可以工作,但看起来很复杂,有没有更好的方法来实现这一点?

python if-statement f-string

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

使用嵌套列表理解来创建加速增长

我想要一个由数字组成的列表,乘数随着每一步的增加而增加。基本的嵌套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)

我知道我在列表理解上做错了,但我不知道如何解决。

python

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

编写一个将字符串重复 n 次并将每次重复与另一个字符串分开的函数

我正在尝试编写一个需要 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 string repeat python-3.x

0
推荐指数
2
解决办法
54
查看次数