我正在研究一个问题,其中不同的动物类型从 Animal 接口实现相同的 talk() 方法。
如果你看一下getAnimal()方法,你会发现,当一种新的动物被添加到程序中时,该方法的内部也必须改变。
我想通过对 Animal 进行子类化来添加新动物,而不更改现有类中的任何内容。
例如添加动物“Dog”,criteria="loyal";说话=“汪”。
你能告诉我,这怎么可能?下面是我的代码:
interface Animal {
public void talk();
}
class Lion implements Animal {
@Override
public void talk() {
System.out.println("ROARRRRR");
}
}
class Mouse implements Animal {
@Override
public void talk() {
System.out.println("SQUEEEEEAK");
}
}
class Bison implements Animal {
@Override
public void talk() {
System.out.println("BELLOWWWWW");
}
}
class AnimalType {
public static Animal getAnimal(String criteria) {
// I refactor this method
if (criteria.equals("small")) {
return new Mouse();
} …Run Code Online (Sandbox Code Playgroud) 这可能是一个简单的问题,但是您能告诉我如何打印范围中的最后一个元素吗?我是这样做的:
for j in range (3):
print(j[2:]) # I only wish to print 2 here
Run Code Online (Sandbox Code Playgroud)
但它说
类型错误:“int”对象不可下标
你能告诉我如何用这个范围函数来得到它吗?
我有两个清单:
list1=[0,0,0,1,1,2,2,3,3,4,4,5,5,5]
list2=['a','b','c','d','e','f','k','o','n','q','t','z','w','l']
dictionary=dict(zip(list1,list2))
Run Code Online (Sandbox Code Playgroud)
我想为每个键输出相同键的值,例如它将像这样打印:
0 ['a','b','c']
1 ['d','e']
2 ['f','k']
3 ['o','n']
4 ['q','t']
5 ['z','w','l']
Run Code Online (Sandbox Code Playgroud)
我编写了以下代码来做到这一点,但它并不像我想象的那样工作
for k,v in dictionary.items():
print (k,v)
Run Code Online (Sandbox Code Playgroud)
您能告诉我如何修复代码,以便我可以获得高于预期的结果吗?提前致谢!
我有两个python列表:
keys=[1,2,2,3,2,3]
values=['apple','book','pen','soccer','paper','tennis']
Run Code Online (Sandbox Code Playgroud)
"键"是"值"列表中相应单词的簇ID列表.我希望使用打印键值对
keys=[1,2,2,3,2,3]
values=['apple','book','pen','soccer','paper','tennis']
dictionary = dict(zip(keys, values))
for key, value in dictionary.items() :
print (key, value)
Run Code Online (Sandbox Code Playgroud)
但它只打印
1 apple
2 paper
3 tennis
Run Code Online (Sandbox Code Playgroud)
我真正想要的是获得所有这些键的所有值
1 [apple]
2 [book,pen,paper]
3 [soccer,tennis]
Run Code Online (Sandbox Code Playgroud)
我知道我的当前代码应该逻辑上打印第一个输出,因为键是唯一的.但是如何更改它以便打印所有键的所有值?先感谢您!
我有一个数据框
Column1 Column2
1 20
2 25
3 30
2 40
4 18
1 24
Run Code Online (Sandbox Code Playgroud)
我想基于Column1的唯一值对Column2求和。我们可以使用以下方式根据特定值(例如1)找到和:
df.loc[df['Column1'] == 1, 'Column2'].sum()
Run Code Online (Sandbox Code Playgroud)
正确地给了我们44。但是,我们如何对Column1中的所有唯一值执行此操作,从而产生该值
Column1 Column2
1 44
2 65
3 30
4 18
Run Code Online (Sandbox Code Playgroud)