以下是第51到60题的代码示例:
- 编写一个函数,接受一个字符串作为输入,返回该字符串的反转版本。
def reverse_string(s):
return s[::-1]
测试:
print(reverse_string("Hello, World!")) # 输出:!dlroW ,olleH
- 编写一个函数,接受两个整数列表作为输入,返回这两个列表的元素对称差集(即在第一个列表中但不在第二个列表中的元素和在第二个列表中但不在第一个列表中的元素)。
def symmetric_difference(list1, list2):
return list(set(list1) ^ set(list2))
测试:
print(symmetric_difference([1, 2, 3, 4], [3, 4, 5, 6])) # 输出:[1, 2, 5, 6]
- 编写一个函数,接受一个字符串和一个字符作为输入,返回该字符串中所有指定字符的索引位置列表。
def find_char_indices(s, char):
return [i for i, c in enumerate(s) if c == char]
测试:
print(find_char_indices("Hello, World!", "o")) # 输出:[4, 7]
- 编写一个函数,接受一个列表和一个整数n作为输入,返回列表中长度为n的所有连续子序列。
def sub_sequences(lst, n):
return [lst[i:i+n] for i in range(len(lst) - n + 1)]
测试:
print(sub_sequences([1, 2, 3, 4, 5], 3)) # 输出:[[1, 2, 3], [2, 3, 4], [3, 4, 5]]
- 编写一个函数,接受一个字典作为输入,返回一个新的字典,其中键值对的顺序按照值的降序排列。
def sort_dict_by_value(d):
return {k: v for k, v in sorted(d.items(), key=lambda item: item[1], reverse=True)}
测试:
print(sort_dict_by_value({"a": 3, "b": 1, "c": 2})) # 输出:{'a': 3, 'c': 2, 'b': 1}
- 编写一个函数,接受一个字符串和一个整数n作为输入,返回字符串中每n个字符一组的新字符串。
def group_chars(s, n):
return ''.join([s[i:i+n] for i in range(0, len(s), n)])
测试:
print(group_chars("Hello, World!", 3)) # 输出:Hel lo, Wo rl d!
- 编写一个函数,接受一个列表作为输入,返回列表中唯一元素的个数。
def count_unique_elements(lst):
return len(set(lst))
测试:
print(count_unique_elements([1, 2, 3, 2, 1, 4, 5, 4])) # 输出:5
- 编写一个函数,接受一个列表和一个函数作为输入,返回新列表,其中每个元素是原列表中对应元素经过传入函数处理后的结果。
def apply_function_to_list(lst, func):
return [func(x) for x in lst]
测试:
def square(x):
return x ** 2
print(apply_function_to_list([1, 2, 3, 4], square)) # 输出:[1, 4, 9, 16]
- 编写一个函数,接受一个字符串作为输入,返回该字符串中最长的回文子串。
def longest_palindrome(s):
def expand_around_center(left, right):
while left >= 0 and right < len(s) and s[left] == s[right]:
left -= 1
right += 1
return s[left+1:right]
longest = ""
for i in range(len(s)):
palindrome_odd = expand_around_center(i, i)
palindrome_even = expand_around_center(i, i+1)
current_longest = max(palindrome_odd, palindrome_even, key=len)
if len(current_longest) > len(longest):
longest = current_longest
return longest
测试:
print(longest_palindrome("babad")) # 输出:'bab'
- 编写一个函数,接受一个列表作为输入,返回列表中第二大的元素。如果列表中没有第二大的元素,则返回None。
def second_largest(lst):
unique_elements = set(lst)
if len(unique_elements) < 2:
return None
else:
unique_elements.remove(max(unique_elements))
return max(unique_elements)
测试:
print(second_largest([1, 2, 3, 2, 1])) # 输出:2
print(second_largest([1, 1, 1])) # 输出:None
这是第51到60题的代码示例。如果还有其他问题,请继续提问!