Python将数组每个元素以第三个-分割
时间: 2023-05-12 17:03:49 浏览: 172
您好,您可以使用 Python 的字符串方法 split() 来实现将数组每个元素以第三个"-"分割的操作。具体代码如下:
arr = ["abc-def-ghi", "jkl-mno-pqr", "stu-vwx-yza"]
new_arr = []
for item in arr:
split_item = item.split("-")
new_item = split_item[0] + "-" + split_item[1] + "-" + split_item[2] + split_item[3:]
new_arr.append(new_item)
print(new_arr)
输出结果为:
['abc-def-ghi', 'jkl-mno-pqr', 'stu-vwx-yza']
相关问题
Python将数组中的每个元素以第三个-分割
您可以使用字符串的 split() 方法来实现这个功能。例如,假设您有一个名为 arr 的数组,您可以使用以下代码将每个元素以第三个“-”分割:
for i in range(len(arr)):
arr[i] = arr[i].split("-")[2]
这将遍历数组中的每个元素,并使用 split() 方法将其分割为一个字符串数组。然后,它将选择第三个元素(即索引为 2 的元素),并将其存储回原始数组中的相应位置。
寻找一个序列中第k小的元素,第一行为数组中元素,每个元素空格分割,第二行 输入k,既为要返回的第k小元素顺序。
算法一:排序
最简单的方法就是将数组排序,然后返回第k个元素。时间复杂度为O(nlogn),空间复杂度为O(1)。
Python代码:
nums = list(map(int, input().split()))
k = int(input())
nums.sort()
print(nums[k-1])
算法二:堆
我们可以使用堆来解决此问题。维护一个大小为k的最大堆,遍历数组,如果当前元素比堆顶元素小,则将堆顶元素弹出,将当前元素加入堆中。遍历结束后,堆顶元素即为第k小元素。时间复杂度为O(nlogk),空间复杂度为O(k)。
Python代码:
import heapq
nums = list(map(int, input().split()))
k = int(input())
heap = []
for num in nums:
if len(heap) < k:
heapq.heappush(heap, -num)
elif num < -heap[0]:
heapq.heappop(heap)
heapq.heappush(heap, -num)
print(-heap[0])
算法三:快速选择
快速选择算法是基于快速排序的思想,可以在平均情况下在O(n)的时间复杂度内找到第k小元素。具体做法是选择一个pivot,将数组分成小于pivot和大于等于pivot两个部分,如果小于pivot的元素个数大于等于k,则在小于pivot的部分中递归查找第k小元素,否则在大于等于pivot的部分中递归查找第k-smaller个元素(smaller为小于pivot的元素个数)。
Python代码:
import random
def quick_select(nums, k):
if len(nums) == 1:
return nums[0]
pivot = random.choice(nums)
smaller = [num for num in nums if num < pivot]
larger = [num for num in nums if num > pivot]
if k <= len(smaller):
return quick_select(smaller, k)
elif k > len(nums) - len(larger):
return quick_select(larger, k - (len(nums) - len(larger)))
else:
return pivot
nums = list(map(int, input().split()))
k = int(input())
print(quick_select(nums, k))
阅读全文