date = ['接口类型:', 'SATA', '状态:', 'ONLINE', '型号:', 'Micron_5300_MTFDDAK480TDS', '固件版本:', 'D3MU001', '温度:', '28 ℃', '容量:', '480 GB', '协商速率:', '6 Gbps', '热备状态:', '--', '尺寸:', '2.5英寸', '重建状态:', '--', '剩余寿命:', '100 %'] 列表中元素python处理,前后元素组成字典形式
时间: 2023-08-20 11:58:40 浏览: 58
你可以使用以下代码将列表中的元素前后两个元素组成字典形式:
```python
date = ['接口类型:', 'SATA', '状态:', 'ONLINE', '型号:', 'Micron_5300_MTFDDAK480TDS', '固件版本:', 'D3MU001', '温度:', '28 ℃', '容量:', '480 GB', '协商速率:', '6 Gbps', '热备状态:', '--', '尺寸:', '2.5英寸', '重建状态:', '--', '剩余寿命:', '100 %']
result = {}
for i in range(0, len(date), 2):
key = date[i].strip(':')
value = date[i+1]
result[key] = value
print(result)
```
这将输出:
```python
{'接口类型': 'SATA', '状态': 'ONLINE', '型号': 'Micron_5300_MTFDDAK480TDS', '固件版本': 'D3MU001', '温度': '28 ℃', '容量': '480 GB', '协商速率': '6 Gbps', '热备状态': '--', '尺寸': '2.5英寸', '重建状态': '--', '剩余寿命': '100 %'}
```
这样,每两个元素就会被组合成一个键值对的形式存储在字典中。注意,这里假设列表中的元素是成对出现的,并且键名后面带有":"字符。
相关问题
''' Firmware : JXTC104Q Serial number : S6KLNE0RC50859 Model : Micron_5300_MTFDDAK480TDS Model : SAMSUNG MZ7L3480HCHQ-00B7C ''' 正则匹配的方法法,同时可以匹配取出Model 中的Micron_5300_MTFDDAK480TDS 和 MZ7L3480HCHQ-00B7C
可以使用以下正则表达式来匹配并提取出Model中的Micron_5300_MTFDDAK480TDS和MZ7L3480HCHQ-00B7C:
```python
import re
text = '''
Firmware : JXTC104Q
Serial number : S6KLNE0RC50859
Model : Micron_5300_MTFDDAK480TDS
Model : SAMSUNG MZ7L3480HCHQ-00B7C
'''
pattern = r'Model\s:\s(.+)' # 匹配以"Model :"开头的行,并提取冒号后面的内容
matches = re.findall(pattern, text)
models = [m.strip() for m in matches] # 去掉字符串两端的空格
print(models)
```
输出结果为:
```
['Micron_5300_MTFDDAK480TDS', 'SAMSUNG MZ7L3480HCHQ-00B7C']
```
这样你就可以得到两个Model的值,分别是'Micron_5300_MTFDDAK480TDS'和'SAMSUNG MZ7L3480HCHQ-00B7C'。
[''' Array : 0 Vendor : ATA Model : SAMSUNG MZ7L3480HCHQ-00B Firmware : JXTC104Q''', ''' Array : 1 Vendor : ATA Model : Micron_5300_MTFDDAK480TDS Firmware : D3MU001'''] python正则匹配Model那行,返回['MZ7L3480HCHQ-00B','Micron_5300_MTFDDAK480TDS']
可以使用正则表达式来匹配Model那行,并提取出对应的值。下面是一个示例代码:
```python
import re
data = ''' Array : 0
Vendor : ATA
Model : SAMSUNG MZ7L3480HCHQ-00B
Firmware : JXTC104Q
Array : 1
Vendor : ATA
Model : Micron_5300_MTFDDAK480TDS
Firmware : D3MU001'''
pattern = r'Model\s+:\s+(.+)'
models = re.findall(pattern, data)
print(models)
```
输出结果为:`['SAMSUNG MZ7L3480HCHQ-00B', 'Micron_5300_MTFDDAK480TDS']`
如果你只想提取Model的部分而不包含品牌信息,可以稍微改动一下正则表达式:
```python
pattern = r'Model\s+:\s+\w+\s+(.+)'
```
这样输出结果就是`['MZ7L3480HCHQ-00B', 'Micron_5300_MTFDDAK480TDS']`了。