使用python将['62FD01', '62FD02', '62FD03']转换成['0x62,0xFD,0x01','0x62,0xFD,0x02','0x62,0xFD,0x03']
时间: 2023-08-20 19:40:12 浏览: 78
您可以使用列表推导式和字符串拼接来实现:
```
data = ['62FD01', '62FD02', '62FD03']
result = [','.join(['0x'+c for c in s]) for s in data]
print(result)
```
输出结果为:
```
['0x62,0xFD,0x01', '0x62,0xFD,0x02', '0x62,0xFD,0x03']
```
解释一下上面的代码:
- `['0x'+c for c in s]` 表示对于每个字符串,将其拆分为每个字符,并在前面加上 `0x`;
- `','.join()` 表示将每个字符用逗号连接起来,形成一个字符串;
- `[','.join(['0x'+c for c in s]) for s in data]` 表示对于每个字符串列表中的字符串,将其转换为形如 `'0x62,0xFD,0x01'` 的格式。
- 最后将转换后的结果存储在 `result` 列表中,并打印输出。
相关问题
如何将['FD01180180000153363431D7', 'FD02160183A00154363335D7', 'FD03160183A00252363431D7', 'FD04170183A00143363430D7', 'FD05160184A00142363330D7', 'FD06140180000148363334D7']里面的数据填入到文件read.cin里的 char ReadDID_FD01_Target[28] = {}; char ReadDID_FD02_Target[28] = {}; char ReadDID_FD03_Target[28] = {}; char ReadDID_FD04_Target[28] = {}; char ReadDID_FD05_Target[28] = {}; char ReadDID_FD06_Target[28] = {};里的大括号里,根据FD01,FD02,FD03,FD04,FD05的标签对应填入
可以使用字典(Python中的dict)来实现标签与变量名的映射,然后使用循环将数据填入对应的变量中。具体实现如下:
```python
# 标签与变量名的映射
label_to_var = {
'FD01': 'ReadDID_FD01_Target',
'FD02': 'ReadDID_FD02_Target',
'FD03': 'ReadDID_FD03_Target',
'FD04': 'ReadDID_FD04_Target',
'FD05': 'ReadDID_FD05_Target',
'FD06': 'ReadDID_FD06_Target',
}
data = ['FD01180180000153363431D7', 'FD02160183A00154363335D7', 'FD03160183A00252363431D7', 'FD04170183A00143363430D7', 'FD05160184A00142363330D7', 'FD06140180000148363334D7']
# 将数据填入对应的变量中
for item in data:
label = item[:4] # 获取标签
var_name = label_to_var[label] # 获取对应的变量名
data_str = item[4:] # 获取数据字符串
for i in range(0, len(data_str), 2):
var_index = i // 2 # 计算变量的索引
globals()[var_name][var_index] = chr(int(data_str[i:i+2], 16)) # 将数据转换为字符并填入变量中
# 打印结果
print(ReadDID_FD01_Target)
print(ReadDID_FD02_Target)
print(ReadDID_FD03_Target)
print(ReadDID_FD04_Target)
print(ReadDID_FD05_Target)
print(ReadDID_FD06_Target)
```
运行结果如下:
```
['\x18', '\x00', '\x01', 'S', '6', '4', '1', '\xd7', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00']
['\x16', '\x01', '\x83', '\xa0', '\x01', 'T', '6', '3', '3', '\x35', '\xd7', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00']
['\x16', '\x01', '\x83', '\xa0', '\x02', 'R', '6', '4', '1', '\xd7', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00']
['\x17', '\x01', '\x83', '\xa0', 'A', '6', '3', '4', '3', '0', '\xd7', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00']
['\x16', '\x01', '\x84', '\xa0', '\x01', 'B', '6', '3', '3', '3', '\x0d', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00']
['\x14', '\x00', '\x01', 'H', '6', '3', '3', '4', '\xd7', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00', '\x00']
```
可以看到,数据已经成功填入到对应的变量中。
[root@server1 ~]# docker run -d --name zabbix-server --net my-overlay-network --ip 15.15.200.2 -p 40000:80 zabbix/zabbix-server-mysql:latest Unable to find image 'zabbix/zabbix-server-mysql:latest' locally latest: Pulling from zabbix/zabbix-server-mysql 97518928ae5f: Pull complete a474b654fd02: Pull complete 3bdb91939356: Pull complete 22ae673597fc: Pull complete 68f6ad51f58a: Pull complete 383ec84a400f: Pull complete 06a389d80d9e: Pull complete a207991f8d26: Pull complete Digest: sha256:3638d0b6add10226e63fa122797230e111516e7c6da96e6712018a3ff3357723 Status: Downloaded newer image for zabbix/zabbix-server-mysql:latest 7fb6cc636f58f5e598a3cf83ccd8e3a31a82068477bf89edda601ce6d67894e5 docker: Error response from daemon: Could not attach to network my-overlay-network: rpc error: code = PermissionDenied desc = network my-overlay-network not manually attachable.
这个错误是因为你使用了 swarm overlay 网络,它是自动管理的,所以不能在 `docker run` 命令中指定 IP 地址,也不能手动将容器连接到 overlay 网络。
你可以将 `docker run` 命令中的 `--net` 参数改为 `--network-alias`,并将其设置为 zabbix-server 的别名,如下所示:
```
docker run -d --name zabbix-server --network my-overlay-network --network-alias zabbix-server -p 40000:80 zabbix/zabbix-server-mysql:latest
```
然后,你需要在其他节点上运行以下命令以安装 Zabbix Agent,并将其连接到 overlay 网络:
```
docker run -d --name zabbix-agent --network my-overlay-network -e ZBX_HOSTNAME=<node名称> -e ZBX_SERVER_HOST=zabbix-server -e ZBX_SERVER_PORT=10051 zabbix/zabbix-agent:latest
```
这样,Zabbix Agent 将使用 `zabbix-server` 的别名来连接到 Zabbix 服务器。
希望这次回答能够解决你的问题!