7-14 英文单词排序分数 25全屏浏览题目作者 张泳单位 浙大城市学院本题要求编
时间: 2025-07-06 10:49:12 浏览: 5
### 英文单词排序编程题解决方案
对于英文单词排序问题,可以采用多种方法实现。这里提供一种基于Python的解决方案,该方案能够满足给定条件下的需求。
#### 输入处理
程序接收多行输入,每一行为一个英文单词,直到遇到字符`#`为止。为了简化读取过程并确保符合题目要求,可利用循环结构持续获取用户输入直至终止符出现[^1]。
```python
words = []
while True:
word = input().strip()
if word == '#':
break
words.append(word)
```
#### 排序逻辑
根据题目说明,需要先依据单词长度升序排列;当两个词具有相同的长度时,则保持原有的相对位置不变。这种特定类型的稳定排序可以通过自定义比较函数来完成,在此推荐使用内置的`sorted()`函数配合lambda表达式达成目标:
```python
def sort_by_length(words):
return sorted(words, key=lambda x: (len(x), words.index(x)))
```
上述代码片段中,`key`参数接受一个匿名函数作为其值,用于指定列表项之间的比较规则——即优先考虑字符串长度(`len(x)`),其次参照原始索引(`words.index(x)`)以维持同长元素间的先后次序。
#### 结果展示
最后一步便是打印经过整理后的序列化结果,各成员间通过空格分隔开来形成最终输出形式。
```python
print(' '.join(sort_by_length(words)))
```
综上所述,完整的Python脚本如下所示:
```python
def main():
words = []
while True:
word = input().strip()
if word == '#':
break
words.append(word)
def sort_by_length(ws):
return sorted(ws, key=lambda x: (len(x), ws.index(x)))
print(' '.join(sort_by_length(words)))
if __name__ == '__main__':
main()
```
阅读全文
相关推荐


















