2个字符串 排列python
时间: 2023-06-10 16:05:58 浏览: 56
可以使用 Python 中的 `permutations` 方法来获取两个字符串的所有排列组合,然后进行比较。以下是示例代码:
``` python
from itertools import permutations
def are_permutations(str1, str2):
# 获取 str1 和 str2 的所有排列组合
perm1 = permutations(str1)
perm2 = permutations(str2)
# 将排列组合转换为字符串列表
perm1_list = [''.join(p) for p in perm1]
perm2_list = [''.join(p) for p in perm2]
# 比较两个字符串列表是否有相同元素
return set(perm1_list) & set(perm2_list)
# 示例用法
str1 = 'abcd'
str2 = 'dcba'
if are_permutations(str1, str2):
print('字符串 "{}" 和 "{}" 是排列关系'.format(str1, str2))
else:
print('字符串 "{}" 和 "{}" 不是排列关系'.format(str1, str2))
```
输出结果:
```
字符串 "abcd" 和 "dcba" 是排列关系
```
相关问题
python 字符串倒序排列
要将Python字符串倒序排列,使用切片操作。下面是一个示例代码```python
string = ", World!"
reversed_string = string[::-1]
print(reversed_string)
```
输出结果为:
```
!dlroW ,olleH
```
在个示例中,`1]`表示从的末尾开始以步长为1进行切片,即逆序提取字符串的所有字符。
Python将字符串随机排列
同样可以使用 Fisher-Yates 洗牌算法对字符串进行随机排列,Python 中可以将其转换为列表,然后使用 random 模块进行随机排列。
示例代码如下:
```python
import random
def shuffle_string(s):
lst = list(s) # 将字符串转换为列表
random.shuffle(lst) # 使用 random 模块进行随机排列
return ''.join(lst) # 将列表转换回字符串
# 测试
s = 'hello world'
print('Original string:', s)
s = shuffle_string(s)
print('Shuffled string:', s)
```
其中 `random.shuffle()` 方法会直接修改原列表,因此不需要对列表进行赋值操作。
注意在实际应用中还需要考虑异常情况,比如输入的字符串为空等。