python-split()/join()/strip() 方法

本文介绍了Python中常用的字符串操作方法,包括split()用于按指定分隔符分割字符串并返回列表;join()用于连接序列中的元素为一个新的字符串;strip()用于移除字符串两端的指定字符。这些方法是处理文本数据的基础。

1 字符串的spilt() 方法

    str.split(str="", num=string.count(str))

str – 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。
num – 分割次数。
返回是一个列表

str = "this is string example....wow!!!"
print (str.split( ))
print (str.split('i',1))
print (str.split('w'))

输出:

['this', 'is', 'string', 'example....wow!!!']
['th', 's is string example....wow!!!']
['this is string example....', 'o', '!!!']

2 字符串的join() 方法

    str.join(sequence)

sequence – 要连接的元素序列。

s1 = "-"
s2 = ""
seq = ("r", "u", "n", "o", "o", "b") # 字符串序列
print (s1.join( seq ))
print (s2.join( seq ))

输出:

r-u-n-o-o-b
runoob

3 字符串的strip() 方法

    str.strip([chars]);

先看无参的例子:

mystr = ' \nabc def 123 abc \t'
newstr = mystr.strip()
print(newstr)
#输出
abc def 123 abc

简单来说就是去除字符串前后的空字符,包括空格、换行(\n)、制表符(\t)等,返回一个新的字符串.

mystr = 'abcdef123abc'
newstr = mystr.strip('abc')
print(newstr)
#输出
def123

当有参数的时候,函数会首先将参数分隔成一个个的字符,然后在字符串收尾去掉这些字符,直到遇到第一个不是参数的字符.

还有lstrip() rstrip() 分别是只对字符串首 尾进行删除.

<think>好的,我现在需要帮助用户将摩尔斯电码转换为文本。根据用户提供的引用内容,特别是引用[2]和[3],摩尔斯电码转换通常需要一个字典来映射电码和字符之间的关系。首先,我需要确认用户是否有现成的字典,或者是否需要自己创建一个。 用户提到之前的引用中有Python实现的例子,比如引用[2]和[3]都涉及Python代码。因此,使用Python编写解码程序应该是可行的。接下来,我需要考虑如何反转字典,因为用户需要的是将摩尔斯电码转换为文本,而引用中的例子主要是将文本转换为电码。这意味着需要将原来的键值对调,电码作为键,字符作为值。 然后,需要考虑输入的处理。摩尔斯电码通常以空格分隔不同的字符,单词之间可能用斜杠或其他分隔符表示,比如引用[3]提到的停顿。因此,在解码时,需要先按单词分割,再按字符分割。例如,将输入的字符串按' / '分割成单词,每个单词再按空格分割成单个电码,然后查字典转换为字符。 还需要处理大小写的问题。引用[2]指出,转换后的明文通常是大写,所以解码后的字符应统一为大写。同时,要处理可能的标点符号和数字,确保字典中包含这些映射。 另外,错误处理也很重要。如果遇到无法识别的电码,可以选择忽略或标记出来,如引用[2]提到的默认不读取偏门符号。因此,在代码中需要处理这种情况,避免程序崩溃。 现在,整理步骤: 1. 创建摩尔斯电码字典,键是字符,值是电码,然后反转字典。 2. 输入摩尔斯电码字符串,按单词和字符分割。 3. 遍历每个电码,查找对应的字符,处理未知电码。 4. 组合结果,输出文本。 测试案例也很重要,比如使用已知的电码验证解码是否正确。例如,引用[3]中的例子,'... --- ...'应该解码为'SOS'。 最后,提供代码示例,并解释关键部分,如字典反转、分割处理等,确保用户能够理解和调整代码以适应他们的需求。</think>### 分步解析:摩尔斯电码转文本 1. **建立反向字典** 将标准摩尔斯电码字典的键值对反转,使电码作为键,字符作为值。例如: ```python MORSE_CODE_DICT = {'A': '.-', 'B': '-...', ..., '1': '.----', ...} REVERSE_DICT = {v: k for k, v in MORSE_CODE_DICT.items()} # 反转字典 ``` 2. **处理输入字符串** 假设输入格式为`"... --- ... / .--. -.-- - .... --- -."`(单词间用`/`分隔,字符间用空格分隔): ```python morse_input = input("请输入摩尔斯电码:").strip() words = morse_input.split(' / ') # 分割单词 ``` 3. **逐字符解码** 对每个单词中的电码符号进行匹配: ```python decoded_text = [] for word in words: chars = word.split() decoded_word = ''.join([REVERSE_DICT.get(char, '<?>') for char in chars]) decoded_text.append(decoded_word) result = ' '.join(decoded_text) # 合并单词 ``` 4. **完整代码示例** ```python MORSE_CODE_DICT = { 'A': '.-', 'B': '-...', 'C': '-.-.', 'D': '-..', 'E': '.', 'F': '..-.', 'G': '--.', 'H': '....', 'I': '..', 'J': '.---', 'K': '-.-', 'L': '.-..', 'M': '--', 'N': '-.', 'O': '---', 'P': '.--.', 'Q': '--.-', 'R': '.-.', 'S': '...', 'T': '-', 'U': '..-', 'V': '...-', 'W': '.--', 'X': '-..-', 'Y': '-.--', 'Z': '--..', '0': '-----', '1': '.----', '2': '..---', '3': '...--', '4': '....-', '5': '.....', '6': '-....', '7': '--...', '8': '---..', '9': '----.', '.': '.-.-.-', ',': '--..--', '?': '..--..', "'": '.----.', '!': '-.-.--', '/': '-..-.', '(': '-.--.', ')': '-.--.-', '&': '.-...', ':': '---...', ';': '-.-.-.', '=': '-...-', '+': '.-.-.', '-': '-....-', '_': '..--.-', '"': '.-..-.', '$': '...-..-', '@': '.--.-.' } def morse_to_text(morse_str): reverse_dict = {v: k for k, v in MORSE_CODE_DICT.items()} decoded_words = [] for word in morse_str.strip().split(' / '): decoded_chars = [] for char in word.split(): decoded_char = reverse_dict.get(char, '<?>') # 处理未知电码 decoded_chars.append(decoded_char) decoded_words.append(''.join(decoded_chars)) return ' '.join(decoded_words) # 测试示例 print(morse_to_text("... --- ...")) # 输出: SOS print(morse_to_text(".--. -.-- - .... --- -.")) # 输出: PYTHON ``` 5. **注意事项** - 电码与字符的映射需要严格匹配国际标准[^3] - 单词间分隔符建议使用`/`,字符间用单个空格 - 程序默认将解码结果转为大写字母[^2] - 可通过扩展`MORSE_CODE_DICT`支持更多符号[^2]
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值