如何使用字符串更新计数器,而不是字符串的字母? 例如,在用两个字符串初始化此计数器之后:
extension UIImageView {
func makeRoundedCorners(_ radius: CGFloat) {
self.layer.cornerRadius = radius
self.layer.masksToBounds = true
}
}
"添加"另一个字符串,例如' red'。当我使用update()方法时,它会添加字母'' e'' d':
let roundProcessor = RoundCornerImageProcessor(cornerRadius: 15,
targetSize: CGSize(width: 30, height: 30))
userAvatarImageView.kf.setImage(with: URL(string: string),
placeholder: UIImage(named: "placeholder"),
options: [ .processor(roundProcessor)])
答案 0 :(得分:8)
c.update(['red'])
>>> c
Counter({'black': 1, 'blue': 1, 'red': 1})
Source可以是可迭代的,字典或其他Counter实例。
虽然字符串是可迭代的,但结果并不是您所期望的。首先将其转换为列表,元组等。
答案 1 :(得分:6)
您可以使用字典更新它,因为添加另一个字符串与使用count +1更新密钥相同:
from collections import Counter
c = Counter(['black','blue'])
c.update({"red": 1})
c
# Counter({'black': 1, 'blue': 1, 'red': 1})
如果密钥已存在,则计数将增加1:
c.update({"red": 1})
c
# Counter({'black': 1, 'blue': 1, 'red': 2})
答案 2 :(得分:4)
您可以使用:
public class HashMapSample {
public static void main(String[] args) {
Map<Integer,List<String>> myHash = new HashMap<>();
myHash.put(1, Arrays.asList("a","aa","aaa"));
myHash.put(3, Arrays.asList("c","ccc","ccc"));
myHash.put(2, Arrays.asList("b","bb","bbb"));
System.out.println(myHash);
myHash.entrySet().stream().sorted(Comparator.comparing(Map.Entry::getKey)).forEach(System.out::println);
}
}
无论是否存在密钥,所有这些选项都将起作用。如果存在,他们将计数增加1
答案 3 :(得分:0)
试试这个:
c.update({'foo': 1})
答案 4 :(得分:0)
我还是举一个例子,也可以增加和减少计数数量
from collections import Counter
counter = Counter(["red", "yellow", "orange", "red", "orange"])
# to increase the count
counter.update({"yellow": 1})
# or
counter["yellow"] += 1
# to decrease
counter.update({"yellow": -1})
# or
counter["yellow"] -= 1