我有一个包含2个项目的列表,我想从中创建第二个列表并将其按指定顺序放置。
package sep2020;
import java.util.Scanner;
public class StringExple {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String correctname = "Pisay"; // String input
System.out.println("Enter your username:");
String username = sc.nextLine();
if (username.equalsIgnoreCase(correctname)) {
System.out.println("Authorized user!!");
} else
System.out.println("Unauthorized user!!");
}
}
我们只知道我们有以01结尾的元素和以02结尾的元素(但我们不知道前缀是“ team”)
我要创建此列表:
Enter your username:
test
Unauthorized user!!
Enter your username:
Pisay
Authorized user!!
注意: 仅对以01结尾的元素添加“ v”,并为所有元素添加“ sp”。因此,顺序必须为:
_____ 01v _____01 _____02 _____01sp _____ 02sp
我们该怎么做?请帮助
答案 0 :(得分:2)
尝试一下
list1 = ['team01', 'team02']
final_list = [i+'v' for i in list1 if i.endswith('01')] + list1 + [i+'sp' for i in list1]
因此,当您打印final_list
时,该值将如下所示
['team01v', 'team01', 'team02', 'team01sp', 'team02sp']
答案 1 :(得分:0)
不是最好的解决方案,但是它可以工作:
list1 = ['team01', 'team02']
tag = list1[0][:-2] # Get the tag 'team' before the number
list2 = [element for element in list1]
for element in list1:
list2.append(element+'sp')
list2.insert(0, tag+'01v')
print(list2)
它将打印['team01v', 'team01', 'team02', 'team01sp', 'team02sp']
。
编辑: 请注意,只有在元素已经排序并且名称后的ID(组后为01)由2位数字组成的情况下,该功能才有效。
答案 2 :(得分:0)
list1 = ['team01', 'team02']
v_list = [item + 'v' for item in list1 if item.endswith('01')]
sp_list = [item + 'sp' for item in list1]
list2 = v_list + list1 + sp_list
答案 3 :(得分:0)
下方
list1 = ['team01', 'team02']
list2 = []
for e in list1:
if e.endswith('01'):
list2.append(e + 'v')
list2.append(e + 'sp')
list2.append(e)
print(list2)
输出
['team01v', 'team01sp', 'team01', 'team02sp', 'team02']