當前位置: 妍妍網 > 碼農

Python數據型別轉換:完整篇

2024-07-02碼農
  1. 「整數到浮點數」

    int_num = 10
    float_num = float(int_num)

  2. 「浮點數到整數」

    float_num = 10.6
    int_num = int(float_num) # 小數部份將被截斷

  3. 「字串到整數」

    str_num = "123"
    int_num = int(str_num)

  4. 「字串到浮點數」

    str_float = "123.45"
    float_num = float(str_float)

  5. 「整數到字串」

    int_num = 456
    str_num = str(int_num)

  6. 「浮點數到字串」

    float_num = 78.90
    str_num = str(float_num)

  7. 「布爾值到整數」

    bool_value = True
    int_value = int(bool_value) # True 轉換為 1

  8. 「列表到元組」

    list_items = [123]
    tuple_items = tuple(list_items)

  9. 「元組到列表」

    tuple_items = (456)
    list_items = list(tuple_items)

  10. 「集合到列表」

    set_items = {789}
    list_items = list(set_items)


  1. 「列表到集合」

    list_items = [10111210]
    set_items = set(list_items) # 集合中不允許重復元素

  2. 「字典到列表」

    dict_items = {'a'1'b'2}
    list_items = list(dict_items.items())

  3. 「列表到字典」

    list_items = [('x'1), ('y'2)]
    dict_items = dict(list_items)

  4. 「字典到集合」

    dict_items = {'a'1'b'2}
    set_items = set(dict_items.keys())

  5. 「集合到字典」

    set_items = {'a''b''c'}
    dict_items = {item: Nonefor item in set_items}

  6. 「字串到字典」 (使用 ast.literal_eval json.loads ):

    import ast
    str_dict = "{'key1': 'value1', 'key2': 'value2'}"
    dict_obj = ast.literal_eval(str_dict)
    # 或者如果字串是JSON格式
    import json
    json_str = '{"key1": "value1", "key2": "value2"}'
    dict_obj = json.loads(json_str)

  7. 「字典到字串」 (使用 str json.dumps ):

    dict_obj = {'key1''value1''key2''value2'}
    str_dict = str(dict_obj) # Python字典的字串表示
    # 或者轉換為JSON格式的字串
    json_str = json.dumps(dict_obj)

  8. 「列表轉換為字串」

    my_list = [123]
    my_str = str(my_list) # "[1, 2, 3]"

  9. 「字串轉換為列表」

    my_str = "a,b,c"
    my_list = my_str.split(',') # ['a', 'b', 'c']

  10. 「字串轉換為列表」 (每個字元一個元素):

    my_str = "hello"
    my_list = [char for char in my_str] # ['h', 'e', 'l', 'l', 'o']


  1. 「字典到集合(僅鍵)」

my_dict = {'a'1'b'2}
my_set = set(my_dict.keys())

  1. 「字典到集合(僅值)」

my_dict = {'a'1'b'2}
my_set = set(my_dict.values())

  1. 「字典到集合(鍵值對)」

my_dict = {'a'1'b'2}
my_set = set(my_dict.items())

  1. 「字典到JSON字串(美化格式)」

import json
my_dict = {'a'1'b'2}
my_json_pretty = json.dumps(my_dict, indent=4)

  1. 「JSON字串到字典(忽略null)」

import json
json_str = '{"a": 1, "b": null}'
my_dict = json.loads(json_str) # null會被轉換為None

  1. 「列表到集合(去重)」

my_list = [12233]
my_set = set(my_list) # 去除重復元素

  1. 「集合到列表(排序)」

my_set = {312}
my_list = sorted(list(my_set)) # 排序後的列表

  1. 「浮點數到二進制字串」

my_float = 3.5
my_binary_str = format(my_float, '.8f') # 格式化為8位元精度的二進制字串

  1. 「二進制字串到浮點數」

my_binary_str = '011.1'
my_float = float.fromhex(my_binary_str) # 假設二進制字串是十六進制表示

  1. 「整數到二進制字串」

my_int = 10
my_binary_str = bin(my_int)[2:] # 去掉字首'0b'

  1. 「二進制字串到整數」

my_binary_str = '1010'
my_int = int(my_binary_str, 2) # 指定基數為2

  1. 「十六進制字串到整數」

my_hex_str = 'A'
my_int = int(my_hex_str, 16) # 指定基數為16

  1. 「整數到十六進制字串」

my_int = 10
my_hex_str = hex(my_int)[2:] # 去掉字首'0x'

  1. 「布爾值到字串」

my_bool = True
my_str = str(my_bool) # "True" 或 "False"

  1. 「字串到布爾值」

my_str = 'True'
my_bool = my_str == 'True'# 根據需要進行適當的邏輯判斷

  1. 「列表到字串(特定分隔符)」

my_list = ['a''b''c']
my_str = ':'.join(my_list) # 使用':'作為分隔符

  1. 「字串到列表(特定分隔符)」

my_str = 'a:b:c'
my_list = my_str.split(':') # 使用':'作為分隔符

  1. 「元組到字串」

my_tuple = (123)
my_str = str(my_tuple) # "(1, 2, 3)"

  1. 「字串到元組」 (透過逗號分隔):

my_str = '1,2,3'
my_tuple = tuple(map(int, my_str.split(',')))

  1. 「字典到字串(鍵值對排序)」

my_dict = {'b'2'a'1}
my_str = str(sorted(my_dict.items())) # 將鍵值對排序

  1. 「字典到字串(格式化輸出)」

my_dict = {'a'1'b'2}
my_str = ' '.join(f"{k}={v}"for k, v in my_dict.items())
# "a=1 b=2"

  1. 「字串到日期」

from datetime import datetime
date_str = "2024-07-02"
my_date = datetime.strptime(date_str, "%Y-%m-%d")

  1. 「日期到字串」

my_date = datetime(202472)
date_str = my_date.strftime("%Y-%m-%d")

  1. 「時間戳到日期」

import time
timestamp = time.time()
my_date = datetime.fromtimestamp(timestamp)

  1. 「日期到時間戳」

my_date = datetime(202472)
timestamp = int(my_date.timestamp())

  1. 「復數到字串」

my_complex = 1 + 2j
my_str = str(my_complex)

  1. 「字串到復數」

my_str = "1+2j"
my_complex = complex(my_str)

  1. 「列表到集合(保持列表順序)」

from collections import OrderedDict
my_list = [12233]
my_ordered_set = list(OrderedDict.fromkeys(my_list))

  1. 「集合到列表(保持集合元素的插入順序)」

my_set = {312}
my_list = list(my_set) # 從Python 3.7開始,集合保持插入順序

  1. 「列表到字節串」

my_list = list('hello')
my_bytes = bytes(my_list)

  1. 「字節串到列表」

my_bytes = b'hello'
my_list = list(my_bytes)

  1. 「列表到字節串(編碼)」

my_list = ['h''e''l''l''o']
my_bytes = ''.join(my_list).encode('utf-8')

  1. 「字節串到列表(解碼)」

my_bytes = b'hello'
my_list = my_bytes.decode('utf-8')

  1. 「字典到字節串(序列化)」

import json
my_dict = {'key1''value1''key2''value2'}
my_bytes = json.dumps(my_dict).encode('utf-8')

  1. 「字節串到字典(反序列化)」

import json
my_bytes = b'{"key1": "value1", "key2": "value2"}'
my_dict = json.loads(my_bytes.decode('utf-8'))

  1. 「列表到檔路徑」

my_list = ['usr''bin''python']
my_path = os.path.join(*my_list) # 使用os.path.join來建立跨平台的檔路徑

  1. 「檔路徑到列表」

import os
my_path = '/usr/bin/python'
my_list = os.path.split(my_path) # 分割路徑為頭部和尾部

  1. 「字典到檔(寫入)」

withopen('data.json''w'as f:
json.dump(my_dict, f)

  1. 「檔到字典(讀取)」

withopen('data.json''r'as f:
my_dict = json.load(f)

  1. 「異常資訊到字串」

try:
1 / 0
except Exception as e:
my_str = str(e)