小编mrz*_*rzo的帖子

防止 f 字符串将浮点数转换为科学记数法

我对 python 3.7.2 中 f-strings 的这种默认行为感到震惊:

>> number = 0.0000001
>> string = f"Number: {number}"
>> print(string)
Number: 1e-07
Run Code Online (Sandbox Code Playgroud)

我的预期是: Number: 0.0000001

这非常烦人,尤其是对于文件名的创建。如何禁用这种自动转换为科学记数法的功能?为什么首先启用它?

基本上与这个问题相反。

编辑:我想避免为浮动通过设置固定长度,{number:.8f}因为我的数字有不同的长度,我不想有任何尾随零。我想使用 f-strings 自动生成文件名,如下所示:

filename = f"number_{number:.10f}_other_number_{other_number:.10f}.json"
Run Code Online (Sandbox Code Playgroud)

我正在寻找一个简单的修饰符,它可以禁用自动科学记数法,同时保持浮点数的原始精度。

python floating-point f-string

7
推荐指数
2
解决办法
599
查看次数

用另一个坐标替换 xarray 坐标

我尝试通过对 xarray.Dataset 使用一个坐标来替换 xarray.Dataset 中具有相同长度的两个坐标。我不在乎旧坐标或其值;我只是想更换它们。有什么方便的方法吗?

import xarray as xr
ds = xr.Dataset({
    "a": ("a_coord", [0, 1, 2]),
    "b": ("b_coord", [50, 10, 20]),
    "a_coord": [4, 8, 9],
    "b_coord": [3, 1, 4],
    "new_coord": [0, 1, 2],
})
# Get rid of a_coord and b_coord and replace both with new_coord, so a and b
# have new_coord as coordinate.
# But how?
Run Code Online (Sandbox Code Playgroud)

我试过了rename,但它返回一个冲突错误(因为 new_coord 已经存在)。

ds.rename({
    "a_coord": "new_coord",
    "b_coord": "new_coord",
})
Run Code Online (Sandbox Code Playgroud)

我是否必须将新坐标显式分配给依赖于旧坐标之一的每个数据变量?由于我有许多数据变量(不仅仅是 a 和 b)和其他坐标,这可能会变得混乱。

python coordinate xarray

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

在 kubernetes spec.template.spec.containers[1].image 上创建部署 YAML 时出错:必需值

我创建了一个 EC2 并在其上安装了 EKS。然后我创建了集群并在其上安装了 docker 映像。现在我尝试使用给定的 yaml 将此映像部署到 docker 容器并收到错误。

Error in creating Deployment YAML on kubernetes 
spec.template.spec.containers[1].image: Required value
spec.template.spec.containers[2].image: Required value
Run Code Online (Sandbox Code Playgroud)

--我可以在 ec2 docker 上看到图像。我的yaml是这样的:

apiVersion: apps/v1beta1
kind: Deployment
metadata:
  name: premiumservice
  labels:
    app: premium-service
  namespace: 
  annotations:
    monitoring: "true"
spec:
  replicas: 1
  selector:
    matchLabels:
      app: premium-service
  template:
    metadata:
      labels:
        app: premium-service
    spec:
      containers:
      - image: "mp3-image1:latest" 
        name: premiumservice
        ports:
        - containerPort: 80
        env:
      - name: type1
        value: "xyz"
      - name: type2
        value: "abc"
Run Code Online (Sandbox Code Playgroud)

deployment kubernetes

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

为什么 `(2 == 2) == True` 等于 `True` 而 `2 == 2 == True` 等于 `False`?

我的问题是这两个陈述:

> 2 == 2 == True
False
> (2 == 2) == True
True
Run Code Online (Sandbox Code Playgroud)

我很困惑。我希望两个表达式相同,因为 Python 会从左到右计算表达式,因此:

> 2 == 2 == True
False
> (2 == 2) == True
True
Run Code Online (Sandbox Code Playgroud)

# (2 == 2) == True
#  |    |
#  ------
#    |
#   True   == True
Run Code Online (Sandbox Code Playgroud)

即使我改变顺序(如果 Python 从右到左计算),我也会得到同样令人困惑的结果:

> True == 2 == 2
False
> True == (2 == 2)
True
Run Code Online (Sandbox Code Playgroud)

有人可以帮我吗?

python

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